Skip to content

Medições do Controle da API do Aimsun Next

Ler Número de Medições

Em C++ e Python

Explicação

Lê o número de medições presentes na rede viária.

Formato
int ECIGetNumberMeterings ()
Parâmetros

Nenhum parâmetro é necessário.

Saída
Saída
  • ≥ 0: O número de medições na rede viária
  • < 0: Erro

Ler Informações de uma Medição

Em C++ e Python

Explicação

Lê as informações da medição de índice elem.

Formato
structA2KMetering ECIGetMeteringProperties (int elem)
structA2KMetering ECIGetMeteringPropertiesById (int IdMetering)
Parâmetros
  • elem: Deve estar entre 0 e o número total de medições -1
  • IdMetering: O identificador da medição.
Saída
struct structA2KMetering {
    int report;
    int Id; 
    int IdSection;
    int IdFirstLane;
    int IdLastLane;
    int Type;
    double Distance;
    const unsigned short* Name;
    int Platoon;
};

onde:

  • report: 0, OK, caso contrário código de erro.
  • Id: Identificador da medição.
  • IdSection: Identificador da seção onde a medição está localizada.
  • IdFirstLane: Primeira faixa que a medição cobre.
  • IdLastLane: Última faixa que a medição cobre.
  • Type: Tipo de medição: 1: VERDE, 2: FLUXO, 3: ATRASO, 4: FLUXO ALINEA, 5: VERDE POR FAIXA.
  • Distance: Posição do início da medição, em relação ao início da seção.
  • Name: Nome da medição.
  • Platoon: Em medições de fluxo, o número de veículos por faixa que permitirá a travessia.

Ler o Identificador da Seção de uma Medição

Em C++ e Python

Explicação

Lê o identificador da seção que contém a medição de índice elem presente na rede viária.

Formato
int ECIGetMeteringIdSection(int elem)
Parâmetros
  • elem: O índice da medição dentro do intervalo 0 ≤ elem < número de medições –1.
Saída
  • > 0: identificador da seção que contém a medição de índice elem.
  • < 0: Erro

Ler o Identificador da Medição

Em C++ e Python

Explicação

Lê o identificador da medição que contém a medição de índice elem presente na rede viária.

Formato
int ECIGetMeteringIdByPosition (int elem)
Parâmetros
  • elem: O índice da medição dentro do intervalo 0 ≤ elem < número de medições –1
Saída
  • > 0: identificador da medição.
  • < 0: Erro

Ler o Identificador da Medição (Função Obsoleta)

Em C++ e Python

Explicação

Lê o identificador da medição de uma seção. Esta função foi obsoleta na versão 6. Use a função ECIGetMeteringIdByPosition em vez disso.

Formato
int ECIGetMeteringId (int idsection)
Parâmetros
  • idsection: O identificador da seção onde a medição está localizada
Saída
  • > 0: identificador da medição.
  • < 0: Erro

Ler o Identificador da Medição

Em C++ e Python

Explicação

Lê o identificador da medição de uma seção e uma posição dentro da seção (a partir do início da seção).

Formato
int ECIGetMeteringIdByPos (int idsection, double position)
Parâmetros
  • idsection: O identificador da seção onde a medição está localizada
  • position: A posição a partir do início da seção onde a medição está localizada, nas unidades da rede (metros ou pés).
Saída
  • > 0: identificador da medição.
  • < 0: Erro

Ler o Nome de uma Medição

Em C++ e Python

Explicação

Lê o nome de uma medição presente em uma seção.

Formato
const unsigned short *ECIGetMeteringNameById(int idmetering);
const unsigned short *ECIGetMeteringName(int idsection) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição
  • idsection: O identificador da seção onde a medição está localizada.
Saída
  • < > NULL: nome da medição
  • = NULL: Erro

Código de exemplo em Python:

nonChar = boolp()
name = AKIConvertToAsciiString(ECIGetMeteringNameById(idmetering), True, nonChar)

Ler o Tipo de Medição

Em C++ e Python

Explicação

Lê o tipo de medição presente em uma seção. O tipo de uma medição pode ser 0: Nenhum; 1: MEDIÇÃO VERDE; 2: MEDIÇÃO DE FLUXO; 3: MEDIÇÃO DE ATRASO; 4: MEDIÇÃO DE FLUXO-ALINEA; 5: MEDIÇÃO VERDE POR FAIXA.

Formato
int ECIGetTypeMeteringById(int idmetering); 
int ECIGetTypeMetering (int idsection) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição
  • idsection: Um identificador válido de uma seção.
Saída
  • ≥ 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler os Parâmetros de Controle de uma Medição Verde

Em C++ e Python

Explicação

Lê os parâmetros de uma medição verde que estão definidos no controle atual.

Formato
int ECIGetParametersGreenMeteringById(int idmetering, double timeSta,   double *amax, double *greenTime, double *amin, double *cycleTime, double *offset, double *yellowTime);
int ECIGetParametersGreenMetering (int idsection, double timeSta, double *amax, double *greenTime, double *amin, double *cycleTime, double *offset, double *yellowtime) (função obsoleta)
Parâmetros
  • idmetering: O identificador da medição
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: Valor que retorna o tempo máximo verde atual em segundos.
  • greenTime: Valor que retorna o tempo verde atual, em segundos.
  • amin: Valor que retorna o tempo mínimo verde atual, em segundos.
  • cycleTime: Valor que retorna o tempo de ciclo atual, em segundos.
  • offset: Valor que retorna o offset, em segundos.
  • yellowtime: Valor que retorna o tempo amarelo, em segundos.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição Verde

Em C++ e Python

Explicação:

Muda os parâmetros de uma medição verde que estão definidos no controle atual.

Formato
int ECIChangeParametersGreenMeteringById(int idmetering, double timeSta, double amax, double ngreenTime, double amin, double ncycleTime, double offset, double yellowTime, double currentTime, double currentTimeTrans, double cycle);
int ECIChangeParametersGreenMetering(int idsection, double timeSta, double amax, double ngreenTime, double amin, double ncycleTime, double offset, double yellowtime, double currentTime, double currentTimeTrans, double cycle)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: O novo tempo máximo verde, em segundos.
  • ngreenTime: O novo tempo verde, em segundos.
  • amin: O novo tempo mínimo verde, em segundos.
  • ncycleTime: O novo tempo de ciclo, em segundos.
  • offset: O novo offset, em segundos.
  • yellowtime: O novo tempo amarelo, em segundos.
  • currentTime: O tempo de simulação atual.
  • currentTimeTrans: O tempo de simulação atual sem considerar a carga inicial.
  • cycle: O passo de simulação atual.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler os Parâmetros de Controle de uma Medição Verde por Faixa

Em C++ e Python

Explicação

Lê os parâmetros de uma medição verde por faixa que estão definidos no controle atual.

Formato
int ECIGetParametersGreenMeteringByLaneById(int idmetering, double timeSta, double *amax, double *greenTime, double *amin,double *cycleTime, double *offset, double *yellowTime, double *laneOffset);
Parâmetros
  • idmetering: O identificador da medição.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: Valor que retorna o tempo máximo verde atual em segundos.
  • greenTime: Valor que retorna o tempo verde atual, em segundos.
  • amin: Valor que retorna o tempo mínimo verde atual, em segundos.
  • cycleTime: Valor que retorna o tempo de ciclo atual, em segundos.
  • offset: Valor que retorna o offset, em segundos.
  • yellowtime: Valor que retorna o tempo amarelo, em segundos.
  • laneOffset: Valor que retorna o atraso ativando o verde entre faixas, em segundos.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição Verde por Faixa

Em C++ e Python

Explicação

Muda os parâmetros de uma medição verde por faixa que estão definidos no controle atual.

Formato
int ECIChangeParametersGreenMeteringByLaneById(int idmetering, double timeSta,double amax, double ngreenTime, double amin, double ncycleTime, double offset, double yellowTime, double laneOffset , double currentTime, double currentTimeTrans, double cycle);
Parâmetros
  • idmetering: O identificador da medição
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: O novo tempo máximo verde, em segundos.
  • ngreenTime: O novo tempo verde, em segundos.
  • amin: O novo tempo mínimo verde, em segundos.
  • ncycleTime: O novo tempo de ciclo, em segundos.
  • offset: O novo offset, em segundos.
  • yellowtime: O novo tempo amarelo, em segundos.
  • laneOffset: O atraso ativando o verde entre faixas, em segundos.
  • currentTime: O tempo de simulação atual.
  • currentTimeTrans: O tempo de simulação atual sem considerar a carga inicial.
  • cycle: O passo de simulação.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler os Parâmetros de Controle de uma Medição de Fluxo

Em C++ e Python

Explicação

Lê os parâmetros de uma medição de fluxo que estão definidos no controle atual.

Formato
int ECIGetParametersFlowMeteringById(int idmetering, double timeSta, double *amax, double *flow, double *amin);
int ECIGetParametersFlowMetering (int idsection, double timeSta, double * amax,double *flow, double *amin) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: Valor retornado para o fluxo máximo permitido.
  • flow: Valor retornado para o fluxo permitido.
  • amin: Valor retornado para o fluxo mínimo permitido.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição de Fluxo

Em C++ e Python

Explicação

Muda os parâmetros de uma medição de fluxo que estão definidos no controle atual.

Formato
int ECIChangeParametersFlowMeteringById(int idmetering, double timeSta, double amax, double flow, double amin , double currentTime, double cycle);
int ECIChangeParametersFlowMetering (int idsection, double timeSta, double amax, double flow, double amin, double currentTime, double cycle) (Função Obsoleta)
int ECIChangeParametersFlowMeteringResetById(int idmetering, double timeSta, double amax, double flow, double amin, double currentTime, double cycle, bool resetToGreen);
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: O novo fluxo máximo permitido, em veículos por hora.
  • newflow: O novo fluxo permitido, em veículos por hora.
  • amin: O novo fluxo mínimo permitido, em veículos por hora.
  • currentTime: O tempo de simulação atual.
  • cycle: O passo de simulação atual.
  • resetToGreen: Se verdadeiro, ele redefinirá o estado da medição. Se falso, considerará as novas taxas após o próximo verde programado
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Ler os Parâmetros de Controle de uma Medição de Fluxo-ALINEA

Em C++ e Python

Explicação

Lê os parâmetros de uma medição de fluxo-ALINEA que estão definidos no controle atual.

Formato
int ECIGetParametersFlowAlineaMeteringById(int idmetering, double timeSta,  double *amax, double *flow, double *amin, double *kr, double *ostar, double *intervalUpdate);
Parâmetros
  • idmetering: O identificador da medição.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: Valor retornado para o fluxo máximo permitido.
  • flow: Valor retornado para o fluxo permitido.
  • amin: Valor retornado para o fluxo mínimo permitido.
  • kr: Valor para o parâmetro do regulador para esta medição.
  • ostar: Ocupação alvo na estrada principal.
  • intervalUpdate: Intervalo em que o fluxo é recalculado, em segundos.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição de Fluxo-ALINEA

Em C++ e Python

Explicação

Muda os parâmetros de uma medição de fluxo-ALINEA que estão definidos no controle atual.

Formato
int ECIChangeParametersFlowAlineaMeteringById(int idmetering, double timeSta, double amax, double flow, double amin, double kr, double ostar, double intervalUpdate, double currentTime, double cycle);
int ECIChangeParametersFlowAlineaMeteringResetById(int idmetering, double timeSta, double amax, double flow, double amin, double kr, double ostar, double intervalUpdate, double currentTime, double cycle, bool resetToGreen);
Parâmetros
  • idmetering: O identificador da medição.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • amax: O novo fluxo máximo permitido, em veículos por hora.
  • newflow: O novo fluxo permitido, em veículos por hora.
  • amin: O novo fluxo mínimo permitido, em veículos por hora.
  • kr: O parâmetro do regulador.
  • ostar: A ocupação alvo na estrada principal.
  • intervalUpdate: O intervalo em que o fluxo será recalculado, em segundos.
  • currentTime: O tempo de simulação atual.
  • cycle: O passo de simulação.
  • resetToGreen: Se verdadeiro, ele redefinirá o estado da medição. Se falso, considerará as novas taxas após o próximo verde programado.
Saída
  • = 0: Nenhum erro ocorreu.
  • <0: Erro

Ler os Parâmetros de Controle de uma Medição de Atraso

Em C++ e Python

Explicação

Lê os parâmetros de uma medição de atraso que estão definidos no controle atual.

Formato
int ECIGetParametersDelayMeteringById(int idmetering, double timeSta, double *avg, double *dev);
int ECIGetParametersDelayMetering (int idsection, double timeSta, double * avg, double *dev) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • avg: Valor retornado para o tempo médio de atraso.
  • dev: Valor retornado para o tempo de desvio de atraso.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição de Atraso

Em C++ e Python

Explicação

Muda os parâmetros de uma medição de atraso que estão definidos no controle atual.

Formato
int ECIChangeParametersDelayMeteringById(int idmetering, double timeSta, double newavg, double newdev);
int ECIChangeParametersDelayMetering (int idsection, double timeSta, double newavg, double newdev) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • newavg: O novo tempo médio de atraso.
  • newdev: O novo tempo de desvio de atraso.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar os Parâmetros de Controle de uma Medição de Atraso para um Tipo de Veículo

Em C++ e Python

Explicação

Muda os parâmetros de uma medição de atraso que estão definidos no controle atual para um tipo específico de veículo.

Formato
int ECIChangeParametersDelayMeteringVehTypeById(int idmetering, double timeSta, double newavg, double newdev, int idVehPos)
int ECIChangeParametersDelayMeteringVehType(int idsection, double timeSta, double newavg, double newdev, int idVehPos) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • timeSta: O tempo de simulação no período estacionário, em segundos a partir da meia-noite.
  • newavg: O novo tempo médio de atraso.
  • newdev: O novo tempo de desvio de atraso.
  • idVehPos: A posição do tipo de veículo.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Desabilitar o plano de controle fixo de uma medição

Em C++ e Python

Explicação

Desabilita o plano de controle fixo atual de uma medição, para que as alterações de estado sejam completamente controladas pelo Módulo da API do Aimsun Next.

Formato
int ECIDisableEventsMeteringById(int idmetering);
int ECIDisableEventsMetering(int idsection) (função obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Habilitar o plano de controle fixo de uma medição

Em C++ e Python

Explicação

Habilita o plano de controle fixo atual de uma medição, para que as alterações de estado sejam completamente controladas pelo Aimsun Next, levando em conta os parâmetros definidos no controle atual.

Formato
int ECIEnableEventsMeteringById(int idmetering)
int ECIEnableEventsMetering (int idsection) (função obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Mudar o Estado de uma Medição

Em C++ e Python

Explicação

Muda o estado de uma medição. Se a estrutura de controle estiver habilitada, o Aimsun Next programa a próxima alteração, levando em conta os parâmetros que definem o controle. Em medições Verdes e de Fluxo, é possível mudar para verde e para vermelho, mas em medições de atraso só é possível mudar para verde e é necessário definir em qual faixa.

Formato
int ECIChangeStateMeteringById(int idmetering, int aState, double time, double cycle, int identity, double timeProportion=0.0)
int ECIChangeStateMetering(int idsection, int aState, double time, double cycle, int identity) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • aState: Um estado válido (0: VERMELHO 1:VERDE 2:AMARELO).
  • time: Um tempo relativo de simulação em segundos.
  • cycle: A duração de cada passo de simulação em segundos.
  • identity: É o número da Faixa 1...N. Somente em medições de atraso ou em medições de tempo verde por faixa é necessário especificar.
Saída
  • = 0: Nenhum erro ocorreu.
  • < 0: Erro

Obter o Estado Atual de uma Medição

Em C++ e Python

Explicação

Obtém o estado atual de uma medição.

Formato
int ECIGetCurrentStateofMeteringById(int idmetering, int idlane)
int ECIGetCurrentStateofMetering(int idsection, int identity) (Função Obsoleta)
Parâmetros
  • idmetering: O identificador da medição.
  • idsection: Um identificador de seção válido.
  • identity: É o número da Faixa 1...N. Somente em medições de atraso.
Saída
  • ≥ 0: O Estado Atual (0: VERMELHO 1:VERDE 2:AMARELO)
  • < 0: Erro