Planos de Controle da API do Aimsun Next¶
Funções relacionadas a Planos de Controle¶
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 < 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.
- < 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