Skip to content

API Aimsun Next Planos de Controle

Ler 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

Ler 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 Tempo Inicial de um plano de controle carregado

Em C++ e Python

Explicação

Ler o tempo inicial quando o plano de controle estará ativo em segundos desde o tempo 00:00:00.

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

Ler o Offset de um plano de controle carregado

Em C++ e Python

Explicação

Ler o offset 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: offset
  • < 0: Erro

Ler o Ciclo de um plano de controle carregado

Em C++ e Python

Explicação

Ler 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 ciclo 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 ≤ índice < ECIGetNumberofControls () –1
  • < 0: Erro

Remover um plano de controle carregado

Em C++ e Python

Explicação

Remover um plano de controle previamente carregado usando o Módulo da API Aimsun Next.

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: Nenhum erro
  • < 0: Erro

Funções relevantes para o controle de cruzamentos

Ler Número de cruzamentos

Em C++ e Python

Explicação

Ler o número de cruzamentos 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 cruzamentos na rede viária
  • < 0: Erro

Ler o Identificador de um cruzamento

Em C++ e Python

Explicação

Ler o identificador do cruzamento elem-th 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 cruzamento a ser lido, dentro do intervalo 0 ≤ elem < ECIGetNumberJunctions()–1
Saída
  • > 0: Identificador do cruzamento elem-th na rede viária
  • < 0: Erro

Ler o Identificador de um cruzamento a partir do Identificador Externo

Em C++ e Python

Explicação

Ler o identificador do cruzamento 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 do cruzamento.
Saída
  • > 0: Identificador do cruzamento com ID externo ‘externalId’ na rede viária
  • < 0: Erro

Ler o Nome de um cruzamento

Em C++ e Python

Explicação

Ler o nome do cruzamento identificado por idJunction. Um plano de controle deve ter sido carregado antes de usar esta função. Retorna uma string codificada em utf16. Deve ser deletada com delete().

Formato
const unsigned short *ECIGetJunctionName(int idJunction)
Parâmetros
  • idJunction: Um identificador de cruzamento válido.
Saída
  • Not NULL:Nome do cruzamento identificado por idJunction
  • NULL: Erro

O uso recomendado em APIs Python é:

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

Ler o número de Grupos de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler o número de grupos semafóricos definidos no cruzamento identificado 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 cruzamento válido.
Saída
  • ≥ 0: Total de grupos semafóricos
  • < 0: Erro

Ler o número de Movimentos atribuídos a um Grupo de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler o número de movimentos de curva atribuídos a um grupo semafórico definido no cruzamento identificado por idJunction. Um plano de controle deve estar carregado antes de usar esta função.

Formato
int ECIGetNumberTurningsofSignalGroup (int idJunction,  int asignalgroup)
Parâmetros
  • idJunction: Um identificador de cruzamento válido.
  • asignalgroup: Um identificador de grupo semafórico válido no intervalo: 1 ≤ asignalgroup ≤ ECIGetNumberSignalGroups(idJunction)
Saída
  • ≥ 0: Total de curvas atribuídas aos grupos semafóricos
  • < 0: Erro

Ler a informação de curva atribuída a um Grupo de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler a informação da curva (identificada pela seção de origem e seção de destino) atribuída ao i-ésimo elemento de um grupo semafórico definido no cruzamento identificado 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 cruzamento válido.
  • asignalgroup: Um identificador de grupo semafórico válido. 1 ≤ asignalgroup ≤ ECIGetNumberSignalGroups(idJunction)
  • indexTurn: Um índice de curva de sinal válido, no intervalo: 0 ≤ indexTurn < ECIGetNumberTurningsofSignalGroup (idJunction, asignalgroup)
  • fromSection: A seção de origem de cada uma das curvas. Esse valor é retornado pela função.
  • toSection: A seção de destino da curva. Esse valor é retornado pela função.
Saída
  • fromSection e toSection: As seções de origem e destino da curva.
  • = 0: Nenhum Erro
  • < 0: Erro
Código de exemplo em Python

O seguinte código lê as seções de origem e destino da primeira curva atribuída 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 de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler o nome dos grupos semafóricos definidos no cruzamento identificado 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 deletada quando não estiver mais em uso.

Formato
const unsigned short *ECIGetLogicalNameofSignalGroup(int ajunction, int asignalgroup)
Parâmetros
  • idJunction: Um identificador de cruzamento válido.
  • asignalgroup: Um identificador de grupo semafórico válido. 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 de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler o ID Externo dos grupos semafóricos definidos no cruzamento identificado 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 deletada quando não estiver mais em uso.

Formato
const unsigned short *ECIGetExternalIdofSignalGroup(int idJunction, int signalPos)
Parâmetros
  • idJunction: Um identificador de cruzamento válido.
  • signalPos: Um identificador de grupo semafórico válido 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 de Sinal de um cruzamento

Em C++ e Python

Explicação

Ler o ID dos grupos semafóricos definidos no cruzamento identificado 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 à posição do grupo semafórico.

Formato

int ECIGetAimsunIdofSignalGroup(int ajunction, int asignalgroup)

Parâmetros
  • idJunction: Um identificador de cruzamento válido.
  • signalPos: Uma posição válida do 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 um cruzamento

Em C++ e Python

Explicação:

Ler o tipo de controle de um cruzamento no plano de controle atual.

Formato
int ECIGetControlType (int idJunction)
Parâmetros
  • idJunction: Um identificador válido do cruzamento.
Saída
  • ≥ 0: 0 Não Controlado, 1 Fixo, 2 Externo, 3 Atuado
  • < 0: Erro

Ler o Tipo de Controle de um cruzamento em um plano de controle carregado

Em C++ e Python:

Explicação

Ler o Tipo de Controle de um cruzamento em um plano de controle carregado.

Formato
int ECIGetTypeControlofJunction(int elemControl, int idJunction);
Parâmetros
  • idJunction: Identificador do nó para 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 Não Controlado, 1 Fixo, 2 Externo, 3 Atuado
  • < 0: Erro

Ler o Número de Fases de um cruzamento

Em C++ e Python

Explicação

Ler o número total de fases de um cruzamento no plano de controle atual.

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

Ler o Número de Fases de um cruzamento em um plano de controle carregado

Em C++ e Python:

Explicação

Ler o número total de fases de um cruzamento em um plano de controle carregado.

Formato
int ECIGetNbPhasesofJunction(int elemControl, int ajunction);
Parâmetros
  • idJunction: Identificador do nó para 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 um cruzamento em um Anel Específico

Em C++ e Python

Explicação

Ler o número total de fases do anel para este cruzamento no plano de controle atual.

Formato
int ECIGetNumberPhasesInRing (int idJunction, int ring)
Parâmetros
  • idJunction representa um identificador de cruzamento 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 um cruzamento em um anel especificado em um plano de controle carregado

Em C++:

Explicação

Ler o número total de fases do anel para este cruzamento 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 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 do Tempo de uma fase de um cruzamento

Em C++ e Python

Explicação

Ler a duração máxima, mínima e atual de uma fase em um cruzamento 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 cruzamento 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 desde a meia-noite.
  • dur: A duração atual da fase. Esse valor é retornado pela função.
  • max: A duração máxima disponível para a fase. Esse valor é retornado pela função.
  • min: A duração mínima disponível para a fase. Esse valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Exemplo mostrando 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 do Tempo de uma fase de um cruzamento em um plano de controle carregado

Em C++ e Python
Explicação

Ler a duração máxima, mínima e atual de uma fase em um cruzamento 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: Identificador do nó para obter as informações.
  • idPhase: Identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)].
  • timeSta: O tempo de simulação (tempo atual) em segundos desde a meia-noite.
  • dur: Representa a duração atual da fase. Esse valor é retornado pela função.
  • max: Representa a duração máxima disponível para a fase. Esse valor é retornado pela função.
  • min: Representa a duração mínima disponível para a fase. Esse valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

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

Em C++ e Python

Explicação

Definir a duração do tempo amarelo, da transição do estado verde para vermelho, de uma fase em um cruzamento durante o plano de controle atual.

Formato
int ECISetYellowTimePhase(int idJunction,int idPhase,double timeSta,double yellow)
Parâmetros
  • idJunction: Um identificador de cruzamento 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 desde a meia-noite.
  • yellow: A nova duração do tempo amarelo, da transição do estado verde para vermelho, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler a Duração do Tempo Amarelo de uma fase de um cruzamento

Em C++ e Python

Explicação

Ler a duração do tempo amarelo de uma fase, da transição do estado verde para vermelho, em um cruzamento 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 cruzamento 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 desde a meia-noite.
  • yellow: A duração do tempo amarelo, da transição do estado verde para vermelho, da fase. Esse valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

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

Em C++ e Python

Explicação

Definir a duração do tempo amarelo, da transição do estado verde para vermelho, de uma fase em um cruzamento 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 cruzamento válido.
  • idPhase representa um identificador de fase válido. Este identificador é definido pelo intervalo [1 ... Total ECIGetNumberPhases (idJunction)]
  • yellow representa a nova duração do tempo amarelo, da transição do estado verde para vermelho, da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

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

Em C++ e Python

Explicação

Ler a duração do tempo amarelo, da transição do estado verde para vermelho, de uma fase em um cruzamento 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 cruzamento 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 desde a meia-noite.
  • yellow representa a duração do tempo amarelo, da transição do estado verde para vermelho, da fase. Esse valor é retornado pela função.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

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

Em C++ e Python

Explicação

Definir a duração do tempo amarelo, da transição do estado vermelho para o verde, de uma fase em um cruzamento 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 cruzamento 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 da transição do estado vermelho para o verde da fase.
Saída
  • 0: Nenhum erro ocorreu.
  • < 0: Erro

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

Em C++ e Python

Explicação

Ler a duração do tempo amarelo, da transição do estado vermelho para o verde, de uma fase em um cruzamento 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