Pular para o conteúdo

Planos de Controle da API do Aimsun Next

Ler o número de planos de controle carregados

Em C++ e Python

Explicação

Ler o número de planos de controle carregados para o cruzamento especificado durante toda a simulação.

Formato
int ECIGetNumberofControls ( int idJunction )
Parâmetros
  • idJunction: Identificador do nó.
Saída
  • ≥ 0: número de planos de controle
  • < 0: Erro

Ler o nome de um plano de controle carregado

Em C++ e Python

Explicação

Leia o nome de um plano de controle específico.

Formato
const unsigned short *ECIGetNameofControl(int idJunction, int elemControl);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do nome do plano de controle a ser recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls (idJunction) –1
Saída
  • Not NULL: nome do plano de controle
  • NULL: Erro

O uso recomendado em APIs Python é:

anyNonAsciiChar = boolp()
AKIConvertToAsciiString(ECIGetNameofControl(idJunction, elemControl), True, anyNonAsciiChar))

Ler o Horário Inicial de um plano de controle carregado

Em C++ e Python

Explicação

Leia o instante inicial em que o plano de controle estará ativo, em segundos a partir de 00:00:00.

Formato
double ECIGetIniTimeofControl(int idJunction, int elemControl);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do nome do plano de controle a ser recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: Hora Inicial, em segundos a partir da meia-noite.
  • < 0: Erro

Ler o Offset de um plano de controle carregado

Em C++ e Python

Explicação

Ler a defasagem de um plano de controle em segundos.

Formato
double ECIGetOffsetofControl (int idJunction, int elemControl);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do plano de controle para o qual o offset está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: deslocamento
  • < 0: Erro

Ler o Ciclo de um plano de controle carregado

Em C++ e Python

Explicação

Leia o ciclo de um plano de controle em segundos.

Formato
double ECIGetControlCycleofJunction (int elemControl, int idJunction);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do plano de controle para o qual o offset está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: ciclo do plano de controle
  • < 0: Erro

Ler o número de anéis em um plano de controle carregado

Em C++ e Python

Explicação

Ler o número de anéis em um plano de controle

Formato
int ECIGetNbRingsJunction(int elemControl, int ajunction);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: número de anéis
  • < 0: Erro

Ler o número de anéis no plano de controle atual

Em C++ e Python

Explicação

Ler o número de anéis de um plano de controle

Formato
int ECIGetCurrentNbRingsJunction(int ajunction);
Parâmetros
  • idJunction: Identificador do nó.
Saída
  • ≥ 0: número de anéis no plano de controle atual
  • < 0: Erro

Ler o número de barreiras em um plano de controle carregado

Em C++ e Python

Explicação

Ler o número de barreiras em um plano de controle

Formato
int ECIGetNbBarriersJunction(int elemControl, int ajunction);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: o índice do plano de controle para o qual o número de barreiras está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: número de barreiras
  • < 0: Erro

Ler o número de barreiras no plano de controle atual

Em C++ e Python

Explicação

Ler o número de barreiras em um plano de controle

Formato
int ECIGetCurrentNbBarriersJunction(int ajunction);
Parâmetros
  • idJunction: Identificador do nó.
Saída
  • ≥ 0: número de barreiras no plano de controle atual
  • < 0: Erro

Ler o nome do plano de controle atual.

Em C++ e Python

Explicação

Ler o nome do plano de controle ativo atual.

Formato
const unsigned short * ECIGetNameCurrentControl (int idJunction);
Parâmetros
  • idJunction: Identificador do nó.
Saída
  • Not NULL: nome do plano de controle
  • NULL: Erro

O uso recomendado em APIs Python é:

anyNonAsciiChar = boolp()
AKIConvertToAsciiString(ECIGetNameCurrentControl(idJunction), True, anyNonAsciiChar))

Ler o índice do plano de controle atual.

Em C++ e Python

Explicação

Fornece o índice do plano de controle ativo atual.

Formato
int ECIGetNumberCurrentControl (int idJunction);
Parâmetros
  • idJunction: Identificador do nó.
Saída
  • ≥ 0: Índice do plano de controle, 0 ≤ index < ECIGetNumberofControls () –1
  • < 0: Erro

Remover um plano de controle carregado

Em C++ e Python

Explicação

Remove um plano de controle carregado anteriormente usando o Aimsun Next API Module.

Formato
int ECIRemoveControl (int idJunction, int elemControl);
Parâmetros
  • idJunction: Identificador do nó.
  • elemControl: O índice do plano de controle a ser removido, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () – 1
Saída
  • = 0: Sem erro
  • < 0: Erro

Funções relevantes para o controle de interseções

Ler Número de nós

Em C++ e Python

Explicação

Lê o número de nós presentes na rede viária. Um plano de controle deve ter sido carregado antes de usar esta função.

Formato:
int ECIGetNumberJunctions()
Parâmetros
  • Nenhum parâmetro necessário.
Saída
  • ≥ 0: Número de interseções na rede viária
  • < 0: Erro

Ler o Identificador de uma interseção

Em C++ e Python

Explicação

Lê o identificador da elem-ésima junção presente na rede viária. Um plano de controle deve ter sido carregado antes de usar esta função.

Formato
int ECIGetJunctionId(int elem)
Parâmetros
  • elem: Índice do identificador do nó a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1
Saída
  • > 0: Identificador da interseção elem-th na rede viária
  • < 0: Erro

Ler o identificador de uma junção a partir do identificador externo

Em C++ e Python

Explicação

Lê o identificador da junção a partir do identificador externo presente na rede viária. Um plano de controle deve ter sido carregado antes de usar esta função.

Formato
int ECIGetJunctionIdFromExternalId(const unsigned short *externalId)
Parâmetros
  • externalId: O identificador externo da interseção.
Saída
  • > 0: Identificador da interseção com ID externo ‘externalId’ na rede viária
  • < 0: Erro

Ler o Nome de uma interseção

Em C++ e Python

Explicação

Lê o nome da junção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função. Retorna uma string codificada em utf16. Deve ser excluída com delete().

Formato
const unsigned short *ECIGetJunctionName(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • Not NULL:Nome da junção identificada por idJunction
  • NULL: Erro

O uso recomendado em APIs Python é:

anyNonAsciiChar = boolp()
AKIConvertToAsciiString(ECIGetJunctionName(idJunction), True, anyNonAsciiChar))

Ler o número de Grupos Semafóricos de uma interseção

Em C++ e Python

Explicação

Ler o número de grupos semafóricos definidos na junção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função.

Formato
int ECIGetNumberSignalGroups(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Número total de grupos semafóricos
  • < 0: Erro

Ler o número de movimentos de conversão atribuídos a um grupo semafórico de uma interseção

Em C++ e Python

Explicação

Leia o número de movimentos de conversão atribuídos a um grupo semafórico definido na interseção identificada por idJunction. Um plano de controle deve ser carregado antes de usar esta função.

Formato
int ECIGetNumberTurningsofSignalGroup (int idJunction,  int asignalgroup)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • asignalgroup: Um identificador válido de grupo semafórico no intervalo: 1 ≤ asignalgroup ≤ ECIGetNumberSignalGroups(idJunction)
Saída
  • ≥ 0: Número total de movimentos de conversão atribuídos aos grupos semafóricos
  • < 0: Erro

Ler informações de movimentos de conversão atribuídas a um grupo semafórico de uma junção

Em C++ e Python

Explicação

Leia as informações do movimento de conversão (identificado pela seção de origem e pela seção de destino) atribuídas ao i-ésimo elemento de um grupo semafórico definido na interseção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função.

Formato
int ECIGetFromToofTurningofSignalGroup (int idJunction, int asignalgroup, int indexTurn, int *fromSection, int *toSection)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • asignalgroup: Um identificador válido de grupo semafórico. 1 ≤ asignalgroup ≤ ECIGetNumberSignalGroups(idJunction)
  • indexTurn: Um índice válido de movimento de conversão semaforizado, no intervalo: 0 ≤ indexTurn &lt ECIGetNumberTurningsofSignalGroup (idJunction, asignalgroup)
  • fromSection: A seção de origem de cada um dos movimentos de conversão. Este valor é retornado pela função.
  • toSection: A seção de destino do movimento de conversão. Este valor é retornado pela função.
Saída
  • fromSection e toSection: As seções de origem e destino do movimento de conversão.
  • = 0: Sem erro
  • < 0: Erro
Código de exemplo em Python

O código a seguir lê as seções de origem e destino do primeiro movimento de conversão atribuído ao primeiro grupo semafórico no nó 203:

fromSection = intp()
toSection = intp()
report = ECIGetFromToofTurningofSignalGroup (203, 1, 0, fromSection, toSection)
if report == 0:
    string = "From Section: " + str(fromSection.value())
    AKIPrintString(string)
    string = "To Section: " + str(toSection.value())
    AKIPrintString(string)
    AKIPrintString("OK")
else :
    AKIPrintString("Not OK")

Ler o nome dos Grupos Semafóricos de uma interseção

Em C++ e Python

Explicação

Lê o nome dos grupos semafóricos definidos na interseção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função. Retorna uma string codificada em utf16 que deve ser excluída quando não estiver mais em uso.

Formato
const unsigned short *ECIGetLogicalNameofSignalGroup(int ajunction, int asignalgroup)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • asignalgroup: Um identificador válido de grupo semafórico. 1 ≤ asignalgroup ≤ ECIGetNumberSignalGroups(idJunction)
Saída
  • Not NULL: Nome lógico do grupo semafórico
  • NULL: Erro
Código de exemplo em Python
nonChar = boolp()
name = AKIConvertToAsciiString(ECIGetLogicalNameofSignalGroup(junctionId, signalPos), True, nonChar)

Ler o ID Externo dos Grupos Semafóricos de uma interseção

Em C++ e Python

Explicação

Ler o ID Externo dos grupos semafóricos definidos na interseção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função. Retorna uma string codificada em utf16 que deve ser excluída quando não estiver mais em uso.

Formato
const unsigned short *ECIGetExternalIdofSignalGroup(int idJunction, int signalPos)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Um identificador válido de grupo semafórico no intervalo 1 ≤ signalPos ≤ ECIGetNumberSignalGroups(idJunction)
Saída
  • Not NULL: Nome lógico do grupo semafórico
  • NULL: Erro
Código de exemplo em Python
nonChar = boolp()
extId = AKIConvertToAsciiString(ECIGetExternalIdofSignalGroup(junctionId, signalPos), True, nonChar)

Ler o ID dos Grupos Semafóricos de uma junção

Em C++ e Python

Explicação

Lê o ID dos grupos semafóricos definidos na interseção identificada por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função. Retorna o ID da interface do usuário que corresponde a essa posição do grupo semafórico.

Formato

int ECIGetAimsunIdofSignalGroup(int ajunction, int asignalgroup)

Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Uma posição válida de grupo semafórico no intervalo 1 ≤ signalPos ≤ ECIGetNumberSignalGroups(idJunction)
Saída
  • ≥ 0: ID do grupo semafórico
  • < 0: Erro

Ler o Tipo de Controle de uma junção

Em C++ e Python

Explicação:

Ler o tipo de controle de uma interseção no plano de controle atual.

Formato
int ECIGetControlType (int idJunction)
Parâmetros
  • idJunction: Um identificador de nó válido.
Saída
  • ≥ 0: 0 Sem controle, 1 Fixo, 2 Externo, 3 Atuado
  • < 0: Erro

Ler o tipo de controle de uma junção em um plano de controle carregado

Em C++ e Python:

Explicação

Lê o Tipo de Controle de uma interseção em um plano de controle carregado.

Formato
int ECIGetTypeControlofJunction(int elemControl, int idJunction);
Parâmetros
  • idJunction: Identificador do nó para o qual obter as informações.
  • elemControl: O índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: 0 Sem controle, 1 Fixo, 2 Externo, 3 Atuado
  • < 0: Erro

Ler o Número de Fases de uma interseção

Em C++ e Python

Explicação

Lê o número total de fases de uma junção no plano de controle atual.

Formato
int ECIGetNumberPhases (int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Número total de fases retornadas
  • < 0: Erro

Ler o número de fases de uma junção em um plano de controle carregado

Em C++ e Python:

Explicação

Ler o número total de fases de uma interseção em um plano de controle carregado.

Formato
int ECIGetNbPhasesofJunction(int elemControl, int ajunction);
Parâmetros
  • idJunction: Identificador do nó para o qual obter as informações.
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
Saída
  • ≥ 0: Número total de fases retornadas
  • < 0: Erro

Ler o número de fases de uma junção em um anel especificado

Em C++ e Python

Explicação

Leia o número total de fases do anel para esta interseção no plano de controle atual.

Formato
int ECIGetNumberPhasesInRing (int idJunction, int ring)
Parâmetros
  • idJunction representa um identificador de nó válido.
  • ring é um número entre 0 e ECIGetNbRingsJunction()-1
Saída
  • ≥0: Número total de fases retornadas
  • < 0: Erro

Ler o Número de Fases de uma interseção em um anel especificado em um plano de controle carregado

In C++:

Explicação

Leia o número total de fases do anel para esta interseção em um plano de controle carregado.

Formato
int ECIGetNumberPhasesInRingofJunction(int elemControl, int idJunction, int ring);
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction: Identificador do nó para o qual obter as informações.
  • ring é um número entre 0 e ECIGetNbRingsJunction()-1
Saída
  • ≥ 0: Número total de fases retornadas
  • < 0: Erro

Ler a Duração de Tempo de uma fase de uma interseção

Em C++ e Python

Explicação

Ler a duração máxima, mínima e atual de uma fase em uma interseção durante o plano de controle atual. Esses tempos são retornados nos parâmetros max, min e dur, respectivamente.

Formato
int ECIGetDurationsPhase(int idJunction, int idPhase, double timeSta, double *dur, double *max, double *min)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • dur: A duração atual da fase. Este valor é retornado pela função.
  • max: A duração máxima disponível para a fase. Este valor é retornado pela função.
  • min: A duração mínima disponível para a fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Exemplo mostrando o uso em Python:

    normalDurationP = doublep() 
    maxDurationP = doublep() 
    minDurationP = doublep() 
    ECIGetDurationsPhase(junctionId, phaseId, timeSta, normalDurationP, maxDurationP, minDurationP) 
    normalDuration = normalDurationP.value() 
    maxDuration = maxDurationP.value() 
    minDuration = minDurationP.value()

Ler a duração de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python
Explicação

Leia as durações máxima, mínima e atual de uma fase em uma interseção em um plano de controle carregado. Esses tempos são retornados nos parâmetros max, min e dur, respectivamente.

Formato
int ECIGetDurationsPhaseofJunction(int elemControl, int idJunction, int idPhase, double timeSta, double *dur, double *max, double *min)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • dur representa a duração atual da fase. Este valor é retornado pela função.
  • max representa a duração máxima disponível para a fase. Este valor é retornado pela função.
  • min representa a duração mínima disponível para a fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • &lt 0: Erro

Definir a Duração do Tempo de Amarelo de uma fase de uma interseção

Em C++ e Python

Explicação

Define a duração do tempo de amarelo, do estado verde para vermelho, de uma fase na junção durante o plano de controle atual.

Formato
int ECISetYellowTimePhase(int idJunction,int idPhase,double timeSta,double yellow)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • amarelo: A nova duração do tempo de amarelo, do estado verde para o vermelho, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a duração do tempo de amarelo de uma fase de uma interseção

Em C++ e Python

Explicação

Lê a duração do tempo amarelo de uma fase, do estado verde para o vermelho, na interseção durante o plano de controle atual. O tempo é retornado no parâmetro yellow.

Formato
int ECIGetYellowTimePhase(int idJunction, int idPhase, double timeSta, double *yellow)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • amarelo: A duração do tempo de amarelo, do estado verde para o vermelho, da fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Definir a Duração do Tempo de Amarelo de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Definir a duração do tempo de amarelo, do estado verde para o vermelho, de uma fase em uma interseção em um plano de controle carregado .

Formato
int ECISetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase, double yellow)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • yellow representa a nova duração do tempo amarelo, do estado verde para vermelho, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a Duração do Tempo de Amarelo de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Lê a duração do tempo de amarelo, do estado verde para o vermelho, de uma fase em uma interseção em um plano de controle carregado. O tempo é retornado no parâmetro yellow.

Formato
int ECIGetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase, double timeSta, double *yellow)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • amarelo representa a duração do tempo de amarelo, do estado verde para o vermelho, da fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Definir a Duração do Tempo de Amarelo do estado vermelho para verde de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Defina a duração do tempo de amarelo, do estado vermelho para o verde, de uma fase em uma interseção em um plano de controle carregado .

Formato
int ECISetYellowTimeBeforeGreenPhaseofJunction(int elemControl, int idJunction,int idPhase, double yellowBeforeGreen)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • yellowBeforeGreen representa a nova duração do tempo amarelo do estado vermelho para o verde da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a Duração do Tempo de Amarelo do estado vermelho para verde de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Ler a duração do tempo de amarelo do estado vermelho para o verde de uma fase em uma interseção em um plano de controle carregado. O tempo é retornado no parâmetro yellowBeforeGreen.

Formato
int ECIGetYellowTimeBeforeGreenPhaseofJunction(int elemControl, int idJunction, int idPhase, double *yellowBeforeGreen)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • yellowBeforeGreen representa a duração do tempo de amarelo do estado vermelho para o verde da fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Definir a duração do tempo de amarelo do estado vermelho para verde de uma fase de uma interseção

Em C++ e Python

Explicação

Define a duração do tempo de amarelo de uma fase, do estado vermelho para verde, na junção durante o plano de controle atual.

Formato
int ECISetYellowTimeBeforeGreenPhase(int idJunction,int idPhase, double timeSta, double yellowBeforeGreen)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • yellowBeforeGreen: A nova duração do tempo de amarelo, do estado vermelho para o verde, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a duração do tempo de amarelo de uma fase, do estado vermelho para verde, de uma interseção

Em C++ e Python

Explicação

Leia a duração do tempo de amarelo de uma fase, do estado vermelho para o verde, na interseção durante o plano de controle atual. O tempo é retornado no parâmetro yellowBeforeGreen.

Formato
int ECIGetYellowTimeBeforeGreenPhase(int idJunction,int idPhase,double timeSta,double *yellowBeforeGreen)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • yellowBeforeGreen: A duração do tempo de amarelo da fase, do estado vermelho para o verde. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Definir a Duração do Tempo de Amarelo de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Definir a duração do tempo de amarelo, do estado verde para o vermelho, de uma fase em uma interseção em um plano de controle carregado .

Formato
int ECISetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase, double yellow)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo da simulação (tempo atual) em segundos a partir da meia-noite.
  • yellow representa a nova duração do tempo amarelo, do estado verde para vermelho, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a Duração do Tempo de Amarelo de uma fase de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Lê a duração do tempo de amarelo, do estado verde para o vermelho, de uma fase em uma interseção em um plano de controle carregado. O tempo é retornado no parâmetro yellow.

Formato
int ECIGetYellowTimePhaseofJunction(int elemControl, int idJunction,int idPhase,double timeSta,double *yellow)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • amarelo representa a duração do tempo de amarelo, do estado verde para o vermelho, da fase. Este valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Verificar se uma Fase de uma Interseção é uma Interfase ou não em um plano de controle carregado >

Em C++ e Python

Explicação

Verificar se uma fase em uma junção em um plano de controle carregado foi definida como interfase pelo usuário ou não.

Formato
int ECIIsAnInterPhaseofJunction(int elemControl, int idJunction,int idPhase)
Parâmetros
  • elemControl: o índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction representa um identificador de nó válido.
  • idPhase representa um identificador de fase válido. Esse identificador é definido pelo intervalo [1 ... Número total de fases]
  • timeSta representa o tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • ≥ 0: 1 significa que a fase é uma interfase, 0 caso contrário.
  • < 0: Erro

Verificar se uma fase de uma junção é uma interfase ou não

Em C++ e Python

Explicação

Verifica se uma fase na interseção durante o plano de controle atual foi definida como interfase.

Formato
int ECIIsAnInterPhase(int idJunction,int idPhase,double timeSta)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • ≥ 0: 1 significa que a fase é uma interfase, 0 caso contrário.
  • < 0: Erro

Ler o número de grupos semafóricos atribuídos a uma fase de uma interseção

Em C++ e Python

Explicação

Lê o número de grupos semafóricos atribuídos a uma fase específica.

Formato
int ECIGetNbSignalGroupsPhaseofJunction (int idJunction,int idPhase,double timeSta)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • ≥ 0: O número de grupos semafóricos atribuídos.
  • < 0: Erro

Ler o identificador do grupo semafórico atribuído a uma fase de uma interseção

Em C++ e Python

Explicação

Ler o ID do grupo semafórico atribuído a uma fase específica.

Formato
int ECIGetSignalGroupPhaseofJunction (int idJunction,int idPhase, int indexSG, double timeSta)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases]
  • indexSG: Um índice válido de um grupo semafórico. Esse índice é definido pelo intervalo [0 ... ECIGetNbSignalGroupsPhaseofJunction-1*]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • ≥ 0: O id do grupo semafórico.
  • < 0: Erro

Atribui um novo estado a um grupo semafórico atribuído a uma fase de uma interseção

Em C++ e Python

Explicação

Atribuir um novo estado de um Grupo Semafórico atribuído a uma fase específica.

Formato
int ECIChangeColorSignalGroupPhaseofJunction(int idJunction, int idPhase, int indexSG, int state, double timeSta);
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases]
  • indexSG: Um índice válido de um grupo semafórico. Esse índice deve estar contido no intervalo [0 ... ECIGetNbSignalGroupsPhaseofJunction-1*]
  • aState: O novo estado (0 significa RED, 1 significa GREEN, 2 significa YELLOW, 3 significa FLASHING GREEN AS GREEN, 4 significa FLASHING RED AS RED, 5 significa FLASHING YELLOW AS YELLOW, 6 significa OFF, 7 significa FLASHING YELLOW AS YIELD, 8 significa YELLOW AS GREEN e 9 significa FLASHING RED AS STOP).
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • = 0: Nenhum erro ocorreu
  • < 0: Erro

Ler o tempo atual de amarelo de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Ler o tempo de amarelo de uma interseção em um plano de controle carregado.

Formato
int ECIGetYellowTimeofJunction(int elemControl, int ajunction)
Parâmetros
  • elemControl: O índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Tempo de amarelo atual retornado, expresso em segundos
  • < 0: Erro

Ler o Tempo de Amarelo Atual do estado vermelho para verde de uma interseção em um plano de controle carregado

Em C++ e Python

Explicação

Leia o tempo de amarelo, do estado verde para o vermelho, de uma interseção em um plano de controle carregado.

Formato
int ECIGetYellowTimeBeforeGreenofJunction(int elemControl, int ajunction)
Parâmetros
  • elemControl: O índice do plano de controle para o qual o número de anéis está sendo recuperado, dentro do intervalo 0 ≤ elemControl < ECIGetNumberofControls () –1
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Tempo amarelo atual, do estado verde para vermelho, retornado, expresso em segundos
  • < 0: Erro

Ler o Tempo Amarelo Atual de uma junção

Em C++ e Python

Explicação

Ler o tempo de amarelo, do estado verde para o vermelho, de uma interseção no controle atual, mesmo quando a interseção tiver desabilitado o plano de controle fixo.

Formato
int ECIGetYellowTime(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Tempo amarelo atual, do estado verde para vermelho, retornado, expresso em segundos
  • < 0: Erro

Ler o tempo atual de amarelo do estado vermelho para verde de uma interseção

Em C++ e Python

Explicação

Ler o tempo de amarelo, do estado vermelho para o verde, de uma interseção no controle atual, mesmo quando a interseção tiver desabilitado o plano de controle fixo.

Formato
int ECIGetYellowTimeBeforeGreen(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Tempo amarelo atual, do estado vermelho para verde, retornado, expresso em segundos
  • < 0: Erro

Ler o Offset Atual de um cruzamento

Em C++ e Python

Explicação

Lê o offset de uma interseção no controle atual, mesmo quando a interseção desativou o plano de controle fixo.

Formato
int ECIGetOffset(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • ≥ 0: Offset atual retornado, expresso em segundos
  • < 0: Erro

Ler a Fase Atual de um cruzamento

Em C++ e Python

Explicação

Lê a fase atual de uma interseção, mesmo quando a interseção tiver desativado o plano de controle fixo. Para interseções atuadas com mais de um anel, recomenda-se usar o ECIGetCurrentPhaseInRing função.

Formato
int ECIGetCurrentPhase(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • > 0: Fase atual retornada. Para interseções atuadas com mais de um anel, retornará um número de N dígitos, em que N é o número de anéis. O primeiro dígito será a fase ativa para o anel 1, o segundo será a fase ativa para o anel 2 e o último dígito será a fase ativa para o anel N. Todos os números serão de 1 até o número de fases no anel.
  • < 0: Erro

Ler a Fase Atual de uma interseção em um anel

Em C++ e Python

Explicação

Lê a fase atual de uma interseção em um anel, mesmo quando a interseção desativou o plano de controle fixo.

Formato
int ECIGetCurrentPhaseInRing(int idJunction, int ring)
Parâmetros
  • idJunction: O identificador do nó.
  • anel: O índice do anel, entre 0 e ECIGetNbRingsJunction()-1
Saída
  • >0: Fase atual retornada, de 1 até o número de fases no anel.
  • < 0: Erro

Ler o horário de início da fase atual de uma interseção

Em C++ e Python

Explicação

Obtém o tempo em que a fase atual de uma interseção foi ativada, mesmo quando a interseção foi desativada no plano de controle fixo. Este tempo é relativo a tempo - o início da simulação. Para interseções atuadas com mais de um anel, use o ECIGetStartingTimePhaseInRing função.

Formato
double ECIGetStartingTimePhase (int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • > 0: Hora de Início (relativa ao Tempo) retornada
  • < 0: Erro

Ler o horário de início da fase atual de um anel em uma interseção

Em C++ e Python
Explicação

Obtém o momento em que a fase atual de um anel em uma interseção, mesmo quando a interseção foi desativada no plano de controle fixo, foi ativada. Esse tempo é relativo a Time (isto é, ao início da simulação).

Formato
double ECIGetStartingTimePhaseInRing(int idJunction, int ring)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • anel:Um número entre 0 e ECIGetNbRingsJunction()-1
Saída
  • ≥ 0: Hora de Início (relativa ao Tempo) retornada
  • < 0: Erro

Ler o tempo atual no ciclo em um anel de uma interseção

Em C++ e Python

Explicação

Leia o tempo atual no ciclo em um anel de uma interseção. Retorna -1 quando o controle é atuado e o anel não está coordenado porque a duração do ciclo é indefinida.

Formato
double ECIGetCurrentTimeInCycle(int idJunction, int ring)
Parâmetros
  • idJunction representa um identificador de interseção válido
  • anel é um número entre 0 e ECIGetNbRingsJunction()-1
Saída
  • ≥ 0: Tempo atual no ciclo retornado
  • < 0: Erro

Desativar o plano de controle de uma interseção

Em C++ e Python

Explicação

Desabilita o plano de controle atual de uma junção, de modo que a mudança de fase seja completamente controlada pelo Aimsun Next API Module. Funciona apenas em planos de controle External e Actuated.

Formato
int ECIDisableEvents(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • = 0: Nenhum erro ocorreu
  • < 0: Erro

Habilitar o plano de controle de um cruzamento

Em C++ e Python

Explicação

Ativa o plano de controle atual de uma junção, de modo que as mudanças de fase sejam completamente controladas pelo Aimsun Next, levando em conta a duração de cada fase. Funciona apenas em planos de controle External e Actuated.

Formato
int ECIEnableEvents(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • = 0: Nenhum erro ocorreu
  • < 0: Erro

Habilitar o plano de controle de uma interseção ativando uma fase

Em C++ e Python

Explicação

Habilita o plano de controle atual de uma interseção começando pela fase fornecida. Funciona apenas em planos de controle External e Actuated.

Formato
int ECIEnableEventsActivatingPhase(int idJunction, int idPhaseToActivateNow, double expiredTime, double currentTime)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhaseToActivateNow: A fase para iniciar o plano de controle.
  • expiredTime: Os segundos desde o início da fase. Observe que não pode ser maior que a duração de idPhaseToActivateNow; caso contrário, idPhaseToActivateNow será ignorada.
  • currentTime: O tempo atual da simulação.
Saída
  • = 0: Nenhum erro ocorreu
  • < 0: Erro

Verificar se os eventos de controle de uma interseção estão habilitados.

Em C++ e Python

Explicação

Verifica se o plano de controle atual de uma junção está habilitado, ou seja, se as mudanças de fase na junção são controladas internamente pelo Aimsun Next.

Formato
    int ECIIsEventsEnabled(int idJunction)
Parâmetros
  • idJunction: Um identificador de junção válido.
Saída
  • = 1: os eventos de controle da interseção estão habilitados.
  • = 0: os eventos de controle da interseção estão desabilitados.
  • < 0: Erro.

Mudança Direta de Fase

Em C++ e Python

Explicação

Altera para idPhase na interseção identificada por idJunction. Se os eventos estiverem habilitados, o Aimsun Next programa a próxima mudança de fase, levando em conta a duração atual de idPhase.

Formato
int ECIChangeDirectPhase(int idJunction, int idPhase, double timeSta, double time,  double cycle, double expiredTime)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • tempo: Um tempo relativo de simulação em segundos.
  • ciclo: A duração de cada etapa de simulação em segundos.
  • expiredTime: Os segundos desde o início da fase. Observe que não pode ser maior que a duração de idPhase; caso contrário, ele ignorará idPhase.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro.

Mudança Direta de Fase com Transição

Em C++ e Python

Explicação

Altera para idPhase na interseção identificada por idJunction, calculando automaticamente a transição da fase atual para idPhase. A transição é calculada usando o seguinte método:

if the current phase CP is not an interphase
    if CP has an interphase I defined as next phase
        Calculate the transition from CP to idPhase (setting green all signal groups active in both phases)
        Activate the interphase I with the duration defined (with the signal group states calculated)
        After the duration of interphase I, activate phase idPhase
    else
        Activate directly phase idPhase (without transition)
    endif
else
    Activate directly phase idPhase (without transition)
endif

Se os eventos estiverem habilitados, o Aimsun Next programa a próxima mudança de fase, levando em conta a duração atual de cada fase. Caso contrário, a próxima mudança de fase deve ser feita pelo Aimsun Next API Module. IMPORTANTE: esta função exige que uma fase esteja ativa, o que significa que a transição será calculada incorretamente quando o estado do grupo semafórico tiver sido definido chamando a função ECIChangeSignalGroupState, pois essa chamada leva à perda da fase "current".

Formato
int ECIChangeDirectPhaseWithInterphaseTransition (int idJunction, int idPhase, double timeSta, double time,  double cycle)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • *idPhase&: Um identificador de fase válido. Esse identificador é definido pelo intervalo [1 ... ECIGetNumberPhases (idJunction)]
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • tempo: Um tempo relativo de simulação em segundos.
  • ciclo: A duração de cada etapa de simulação em segundos.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Alterar a Duração Atual da Fase

Em C++ e Python

Explicação

Altera a duração de idPhase na interseção identificada por idJunction no plano de controle atual. Esta alteração se aplica somente quando esta interseção tem os eventos habilitados.

Formato
int ECIChangeTimingPhase(int idJunction, int idPhase, double newTime, double timeSta)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idPhase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total Number of phases] (que é conhecido usando a função ECIGetNumberPhases (idJunction))
  • newTime: Representa a nova duração de idPhase, em segundos.
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Alterar diretamente o Estado de um Grupo Semafórico

Em C++ e Python

Explicação

Altera o estado do grupo semafórico idSigGr na interseção identificada por idJunction. Os eventos devem estar desabilitados.

Formato
int ECIChangeSignalGroupState(int idJunction, int idSigGr, int aState, double timeSta, double time, double cycle)
int ECIChangeSignalGroupStatebyName(int idJunction, const unsigned short *nameSignalGroup, int aState, double timeSta, double time, double cycle);
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idSigGr: Um identificador válido de Grupo Semafórico. Esse identificador é definido pelo intervalo [1 ... Número Total de Grupos Semafóricos na interseção].
  • aState: O novo estado (0 significa RED, 1 significa GREEN, 2 significa YELLOW, 3 significa FLASHING GREEN AS GREEN, 4 significa FLASHING RED AS RED, 5 significa FLASHING YELLOW AS YELLOW, 6 significa OFF, 7 significa FLASHING YELLOW AS GREEN, 8 significa YELLOW AS GREEN, 9 significa FLASHING RED AS GREEN e 10 significa YELLOW BEFORE GREEN).
  • tempo: O tempo absoluto da simulação.
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • ciclo: A duração de cada etapa de simulação em segundos.
  • nameSignalGroup: O nome lógico do grupo semafórico.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Alterar diretamente o Estado de um Grupo Semafórico para Amarelo

Em C++ e Python

Explicação

Altera o estado do grupo semafórico idSigGr na interseção identificada por idJunction. Os eventos devem estar desabilitados.

Formato
int ECIChangeSignalGroupStateToYellow(int idJunction, int idSigGr, int aState, double timeSta, double time, double cycle, double greenTime)
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idSigGr: Um identificador válido de Grupo Semafórico. Esse identificador é definido pelo intervalo [1 ... Número Total de Grupos Semafóricos na interseção].
  • aState: O novo estado (0 significa RED, 1 significa GREEN, 2 significa YELLOW, 3 significa FLASHING GREEN AS GREEN, 4 significa FLASHING RED AS RED, 5 significa FLASHING YELLOW AS YELLOW, 6 significa OFF, 7 significa FLASHING YELLOW AS GREEN, 8 significa YELLOW AS GREEN, 9 significa FLASHING RED AS GREEN e 10 significa YELLOW BEFORE GREEN).
  • tempo: O tempo absoluto da simulação.
  • timeSta: O tempo de simulação (tempo atual) em segundos a partir da meia-noite.
  • ciclo: representa a duração de cada passo de simulação em segundos.
  • nameSignalGroup: O nome lógico do grupo semafórico.
  • greenTime: O número de segundos a partir do momento em que a luz muda para amarelo durante os quais os veículos ainda atravessarão o semáforo.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Obter o Estado Atual de um Grupo Semafórico

Em C++ e Python

Explicação

Obtenha o estado do grupo semafórico idSigGr na interseção identificada por idJunction.

Formato
int ECIGetCurrentStateofSignalGroup(int ajunction, int asignalgroup)
int ECIGetCurrentStateofSignalGroupbyName(int idJunction, const unsigned short *nameSignalGroup);
Parâmetros
  • idJunction: Um identificador de junção válido.
  • idSigGr: Um identificador válido de Grupo Semafórico. Esse identificador é definido pelo intervalo [1 ... Número Total de Grupos Semafóricos na interseção].
  • nameSignalGroup: O nome lógico do grupo semafórico.
Saída
  • ≥ 0: O estado atual. (0 significa RED, 1 significa GREEN, 2 significa YELLOW, 3 significa FLASHING GREEN AS GREEN, 4 significa FLASHING RED AS RED, 5 significa FLASHING YELLOW AS YELLOW, 6 significa OFF, 7 significa FLASHING YELLOW AS GREEN, 8 significa YELLOW AS GREEN, 9 significa FLASHING RED AS GREEN e 10 significa YELLOW BEFORE GREEN)
  • < 0: Erro

Obter os parâmetros de redução do gap atuado e tempo de passagem

Em C++ e Python

Explicação

Obtenha os parâmetros de tempo de passagem atuado.

Formato
int ECIGetActuatedParamsPassageTime(int elemControl, int ajunction, int aidphase, double *apassageTime, double *atimeBeforeReduce, double *atimeToReduce, double *aminimumGap);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
Saída
  • > 0: apassagetTime, atimeBeforeReduce, atimeToReduce e aminimumGap contêm os valores relacionados
  • < 0: Erro

Definir os parâmetros de redução de intervalo atuado e tempo de passagem

Em C++ e Python

Explicação

Defina os parâmetros de tempo de passagem atuado.

Formato
int ECISetActuatedParamsPassageTime(int elemControl, int ajunction, int aidphase, double apassageTime, double atimeBeforeReduce, double atimeToReduce, double aminimumGap);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • apassageTime: Novo tempo de passagem.
  • atimeBeforeReduce: Novo tempo antes de reduzir .
  • atimeToReduce: Novo tempo a reduzir.
  • aminimumGap: Novo gap mínimo.
Saída
  • ≥ 0: Sucesso
  • < 0: Erro

Obter os Parâmetros de Tempo Verde Mínimo Atuado

Em C++ e Python

Explicação

Obter os parâmetros de tempo de Verde Mínimo atuado.

Formato
int ECIGetActuatedParamsMinimumGreen(int elemControl, int ajunction, int  aidphase, double *aMinDurationMinGreen, double *aMaxMinGreen, double *aSecActuation);
Parâmetros
  • elemControl: O índice do identificador do entroncamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
Saída
  • ≥ 0: aMinDurationMinGreen, aMaxMinGreen e aSecActuation contêm os valores relacionados
  • < 0: Erro

Definir os Parâmetros de Tempo Verde Mínimo Atuado

Em C++ e Python

Explicação

Define os parâmetros atuados de Minimum Green Time. Se o tempo mínimo de verde for definido como 0 (aMinDurationMinGreen, aMaxMinGreen e aSecActuation iguais a 0), o recall desta fase é alterado para NoRecall (a fase é ativada somente quando há chamada).

Formato
int ECISetActuatedParamsMinimumGreen(int elemControl, int ajunction, int aidphase, double aMinDurationMinGreen, double aMaxMinGreen, double aSecActuation);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • aMinDurationMinGreen: Novo tempo mínimo de verde.
  • aMaxMinGreen: Novo tempo verde inicial máximo.
  • aSecActuation: Novo tempo de atuação em segundos.
Saída
  • ≥ 0: Sucesso
  • < 0: Erro

Obter o Tempo Verde Máximo Atuado

Em C++ e Python

Explicação

Obter o tempo de Verde Máximo atuado.

Formato
double ECIGetActuatedParamsMaxGreen(int elemControl, int ajunction, int aidphase);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
Saída
  • ≥ 0: Tempo Verde Máximo
  • < 0: Erro

Definir o Tempo Verde Máximo Atuado

Em C++ e Python

Explicação

Defina o actuated Maximum Green Time. Se o tempo máximo de verde for definido como 0, esta fase será ignorada dentro do ciclo (isso significa alterada para NoRecall e desativar a detecção) e essa fase poderá ser ativada somente se estiver definida como padrão.

Formato
int  ECISetActuatedParamsMaxGreen(int elemControl, int ajunction, int aidphase, double aMaxDuration);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • aMaxDuration: Novo tempo máximo de verde.
Saída
  • ≥ 0: Sucesso
  • < 0: Erro

Obter os Períodos Actuated Force Off e Permissive

Em C++ e Python

Explicação

Obtém os períodos atuados de Force Off e permissivos definidos para uma interseção.

Formato
int ECIGetActuatedParamsForceOFFPermissivePeriod(int elemControl, int ajunction, int aidphase, double *forceOFF, double *permissivePeriodFrom, double *permissivePeriodTo);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • forceOFF: O force off definido para a fase. Este valor é retornado pela função.
  • permissivePeriodFrom: O período permissivo definido para a fase. Este valor é retornado pela função.
  • permissivePeriodTo: O período permissivo a ser definido para a fase. Este valor é retornado pela função.
Saída
  • ≥ 0: Tempo Verde Máximo
  • < 0: Erro

Definir os Períodos Actuated Force Off e Permissive

Em C++ e Python

Explicação

Defina os períodos Force Off atuados e permissivos para uma interseção.

Formato
int  ECISetActuatedParamsForceOFFPermissivePeriod(int elemControl, int ajunction, int aidphase, double forceOFF, double permissivePeriodFrom, double permissivePeriodTo);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
  • forceOFF: O force off definido para a fase.
  • permissivePeriodFrom: O período permissivo definido para a fase.
  • permissivePeriodTo: O período permissivo a ser definido para a fase.
Saída
  • ≥ 0: Tempo Verde Máximo
  • < 0: Erro

Obter o Tempo Verde Total de um Grupo Semafórico

Somente em C++:

Explicação

Obter o tempo total em que um grupo semafórico ficará verde no plano de controle atual.

Formato
int ECIGetSignalGroupGreenDuration(int idJunction, int signalPos, double timeSta );
Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Uma posição válida de grupo semafórico na interseção entre 1 e ECIGetNumberSignalGroups( idJunction ).
  • 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: Sem Erro. A duração total de verde
  • < 0: Erro

Obter o Tempo Amarelo Total de um Grupo Semafórico

Somente em C++:

Explicação

Obter o tempo total em que um grupo semafórico ficará em amarelo, do estado verde para o vermelho, no plano de controle atual.

Formato
int ECIGetSignalGroupYellowDuration(int idJunction, int signalPos, double timeSta );
Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Uma posição válida de grupo semafórico na interseção entre 1 e ECIGetNumberSignalGroups( idJunction ).
  • 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: Sem erro. A duração total do amarelo do estado verde para o vermelho.
  • < 0: Erro

Obter o Tempo Total de Vermelho de um Grupo Semafórico

Somente em C++:

Explicação

Obtenha o tempo total em que um grupo semafórico ficará vermelho no plano de controle atual.

Formato
int ECIGetSignalGroupRedDuration(int idJunction, int signalPos, double timeSta );
Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Uma posição válida de grupo semafórico na interseção entre 1 e ECIGetNumberSignalGroups( idJunction ).
  • 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: Sem erro. A duração total do vermelho
  • < 0: Erro

Obter o tempo total de amarelo, do estado vermelho para verde, de um grupo semafórico

Somente em C++:

Explicação

Obter o tempo total em que um grupo semafórico ficará em amarelo, do estado vermelho para o verde, no plano de controle atual.

Formato
int ECIGetSignalGroupYellowBeforeGreenDuration(int idJunction, int signalPos, double timeSta );
Parâmetros
  • idJunction: Um identificador de junção válido.
  • signalPos: Uma posição válida de grupo semafórico na interseção entre 1 e ECIGetNumberSignalGroups( idJunction ).
  • 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: Sem erro. A duração total do amarelo do estado vermelho para o verde.
  • < 0: Erro

Definir uma chamada externa para uma fase atuada

Em C++ e Python

Explicação

Define uma chamada externa para uma fase atuada em uma interseção. Esta chamada é válida apenas para uma etapa de simulação.

Formato
int  ECISetExternalCall(int elemControl, int ajunction, int aidphase);
Parâmetros
  • elemControl: O índice do identificador do cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1.
  • idJunction: Um identificador de junção válido.
  • aidphase: Um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Número total de fases].
Saída
  • ≥ 0: Sem erro.
  • < 0: Erro