Pular para o conteúdo

Medidas de Detectores da API do Aimsun Next

Notas

Se as medições do detector forem acessadas usando o Detector Name, os valores retornados corresponderão ao primeiro Detector cujo nome corresponda ao nome passado como parâmetro. Portanto, quando um modelo de rede tiver vários detectores com o mesmo nome, é melhor acessar as medições do Detector usando o Detector Identifier.

Detecção instantânea refere-se aos atributos medidos por um detector naquele instante, sendo a duração desse instante definida pelo Ciclo de detecção, em oposição a dados agregados coletados ao longo de um intervalo de saída de detecção.

Ler Número de detectores

Em C++ e Python

Explicação

Ler o número total de detectores na rede viária

Formato
int AKIDetGetNumberDetectors ()
Parâmetros

None

Saída
  • > 0: Número total de detectores
  • < 0: Erro

Ler Identificador de um detector

Em C++ e Python

Explicação

Leia o identificador do elem-ésimo detector.

Formato
int AKIDetGetIdDetector (int elem)
Parâmetros
  • elem: Número do detector. Deve estar entre 0 e o número total de detectores -1
Saída
  • > 0: O identificador do detector
  • < 0: Erro

Ler as Informações de um detector

Em C++ e Python

Explicação

Ler as informações do detector elem-th.

Formato
structA2KDetector AKIDetGetPropertiesDetector(int elem)
structA2KDetector AKIDetGetPropertiesDetectorById (int IdDetector)
Parâmetros
  • elem: Número do detector. Deve estar entre 0 e o número total de detectores -1
  • IdDetector O identificador do detector.
Saída
struct structA2KDetector {
    int report;
    int Id; 
    int IdSection
    int IdFirstLane;
    int IdLastLane;
    int Capabilities;
    double InitialPosition;     
    double FinalPosition;       
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • Id: identificador do detector
  • IdSection: identificador da seção onde o detector está localizado
  • IdFirstLane: primeira faixa que o detector cobre
  • IdLastLane: última faixa que o detector cobre
  • Capacidades: conjunto de bits que codifica as capacidades de detecção.
  • InitialPosition: posição do início do detector, em relação ao início da seção.
  • FinalPosition: posição do fim do detector, em relação ao início da seção.

Verificar os recursos de detecção

Em C++ e Python

Explicação

Verifica as capacidades de detecção de um detector lido anteriormente. Elas são usadas para verificar se um detector consegue detectar contagem, presença, velocidade, ocupação, headway, densidade ou veículos equipados.

Formato
bool AKIDetIsCountGather(int Capability);
bool AKIDetIsPresenceGather(int Capability);
bool AKIDetIsSpeedGather(int Capability);
bool AKIDetIsOccupancyGather(int Capability);
bool AKIDetIsHeadwayGather(int Capability);
bool AKIDetIsDensityGather(int Capability);
bool AKIDetIsInfEquippedVehGather (int Capability);
Parâmetros
  • Capacidade: Um conjunto de bits que codifica as capacidades de detecção. Este conjunto de bits pode ser obtido usando AKIDetGetPropertiesDetector
Saída
  • true: Capacidade permitida.
  • false: Sem Capacidade ou Erro

Ler o Intervalo de Detecção

Em C++ e Python

Explicação

Ler o intervalo de detecção (segundos) usado para coletar as medidas agregadas.

Formato
double AKIDetGetIntervalDetection ()
Parâmetros
  • None
Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler o Intervalo de Detecção Instantânea

Explicação

Lê o intervalo (segundos) usado para coletar as medidas instantâneas de detecção.

Formato
double AKIDetGetCycleInstantDetection ()
Parâmetros

None

Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler o número de medidas de Detecção Instantânea disponíveis durante o último ciclo de detecção

Em C++ e Python

Explicação

Ler o número de medidas de detecção instantânea disponíveis durante o último Ciclo de detecção

int AKIDetGetNbMeasuresAvailableInstantDetection ()
Parâmetros

None

Saída
  • ≥ 0: número de medições
  • < 0: Erro

Ler o Horário de Término da medida de Detecção Instantânea disponível durante o último ciclo de detecção

Em C++ e Python

Explicação

Lê o horário de término das medidas de detecção instantânea disponíveis durante o último Ciclo de detecção.

Formato
double AKIDetGetEndTimeMeasureAvailableInstantDetection(int elem)
Parâmetros
  • elem: Número do detector. Deve ser ≥ 0 e < número total de medidas disponíveis (consulte a função anterior)
Saída
  • ≥ 0: o intervalo de detecção retornado em segundos
  • < 0: Erro

Ler a Presença Instantânea de um detector

Em C++ e Python

Explicação

Ler a presença instantânea durante o último ciclo de detecção de um detector. Isso será 0 se nenhum veículo tiver passado sobre o detector e 1 caso contrário. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em consideração. A primeira função fornece a última medida disponível durante o último ciclo e a segunda fornece a medida para um instante específico durante o último ciclo (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetPresenceCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetPresenceInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • &ge 0: a presença retornada
  • < 0: Erro

Ler o Tempo Ocupado Instantâneo de um detector

Em C++ e Python

Explicação

Leia a porcentagem do tempo em que o detector esteve ocupado a partir de um instante. É possível distinguir a detecção para diferentes tipos de veículos. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medição disponível durante o último passo de simulação, e a segunda fornece a medição para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetTimeOccupedCyclebyId (int IdDetector, int vehTypePos)
double  AKIDetGetTimeOccupedInstantDetectionbyId(int IdDetector, int vehType, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: a porcentagem de tempo ocupado retornada
  • < 0: Erro

Ler a medida do Contador Instantâneo de um detector

Em C++ e Python

Explicação

Lê o número de veículos que cruzaram o detector durante um instante. É possível distinguir a detecção para diferentes tipos de veículos. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante o último passo de simulação e a segunda fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetCounterCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetCounterInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: o contador retornado
  • < 0: Erro

Ler a Velocidade Média Instantânea de um detector

Em C++ e Python

Explicação

Lê a média instantânea da velocidade dos veículos (km/h ou mph, dependendo das unidades definidas na rede) que estão sobre o detector. É possível distinguir a detecção para diferentes tipos de veículo. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante o último passo de simulação, e a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetSpeedCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetSpeedInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: a velocidade retornada
  • < 0: Erro

Ler o número instantâneo de intervalos ocupados de um detector

Em C++ e Python

Explicação

Ler o número total de intervalos em que o detector esteve ocupado durante um instante. É possível distinguir a detecção para diferentes tipos de veículo. No caso em que o tipo de veículo é 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante o último passo de simulação e a segunda fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbintervalsOccupedCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbintervalsOccupedInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
  • ≥ 0: o número de intervalos retornado
  • < 0: Erro

Ler o tempo inicial instantâneo de um intervalo ocupado de um detector

Em C++ e Python

Explicação

Ler o instante inicial instantâneo de um intervalo ocupado de um detector. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante a última etapa da simulação, enquanto a última fornece a medida para um instante específico durante a última etapa da simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetIniTimeOccupedCyclebyId (int IdDetector, int elem, int vehTypePos)
double AKIDetGetIniTimeOccupedInstantDetectionbyId(int IdDetector, int elem, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • elem: O número do intervalo. Deve estar entre 0 e o número total de intervalos -1
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: o tempo inicial retornado, em segundos a partir da meia-noite.
  • < 0: Erro

Ler o tempo final instantâneo de um intervalo ocupado de um detector

Em C++ e Python

Explicação

Lê o instante final de um intervalo ocupado de um detector. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medição disponível durante o último passo de simulação, e a última fornece a medição para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetFinTimeOccupedCyclebyId (int IdDetector, int elem, int vehTypePos)
double AKIDetGetEndTimeOccupedInstantDetectionbyId(int IdDetector, int elem, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • elem: O número do intervalo. Deve estar entre 0 e o número total de intervalos -1
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: o tempo final retornado
  • < 0: Erro

Ler a ocupação SCOOT de um detector no último ciclo

Em C++ e Python

Explicação

Lê a ocupação instantânea no formato SCOOT, que requer 1 segundo como intervalo de detecção instantânea. É possível distinguir a detecção para diferentes tipos de veículos. No caso em que o tipo de veículo é 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetSCOOTOccupancyCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetSCOOTOccupancyInstantDetectionbyId( int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: a ocupação SCOOT retornada
  • < 0: Erro

Ler a Densidade Instantânea de um detector

Em C++ e Python

Explicação

Lê a densidade instantânea (expressa em veh/km ou veh/mi, dependendo das unidades definidas na rede). É possível distinguir a detecção para diferentes tipos de veículos. No caso de um tipo de veículo ser 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última função fornece a medida para um instante específico durante o último passo de simulação (esse tempo pode ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection).

Nota: A densidade (veh/km) é calculada por faixa, não por seção. Como uma seção pode conter duas ou mais faixas, esteja atento ao impacto do número de faixas no valor de saída. Por exemplo, um único veículo em uma seção de um quilômetro de comprimento com três faixas retornaria um valor de densidade de 0,33.

Formato
double AKIDetGetDensityCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetDensityInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: a densidade instantânea retornada
  • < 0: Erro

Ler o Headway de um detector

Em C++ e Python

Explicação

Lê o headway médio instantâneo entre veículos (tempo médio entre para-choque dianteiro e para-choque dianteiro) que cruzaram o detector. É possível distinguir a detecção para diferentes tipos de veículo. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
double AKIDetGetHeadwayCyclebyId (int IdDetector, int vehTypePos)
double AKIDetGetHeadwayInstantDetectionbyId(int IdDetector, int vehTypePos, double endtime)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: o headway retornado
  • < 0: Erro

Ler o Número Instantâneo de Veículos com suas Informações Estáticas coletadas por um detector

Em C++ e Python

Explicação

Lê o número instantâneo de veículos que cruzaram o detector, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em conta. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbVehsEquippedInDetectionCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: o número de veículos
  • < 0: Erro

Ler o Número Instantâneo de Veículos sobre um detector com suas Informações Estáticas coletadas por um detector

Em C++ e Python

Explicação

Ler o número instantâneo de veículos sobre o detector, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em consideração. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection)

Formato
int AKIDetGetNbVehsEquippedOverCyclebyId (int IdDetector, int vehTypePos)
int AKIDetGetNbVehsEquippedOverInstantDetectionbyId (int IdDetector, int vehTypePos, double endtime);
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime:O tempo que define a medida instantânea
Saída
  • ≥ 0: o número de veículos
  • < 0: Erro

Ler as Informações Instantâneas de Veículo de um detector

Em C++ e Python

Explicação

Leia as informações estáticas instantâneas dos veículos de todos os veículos equipados que cruzaram o detector, quando o detector tiver a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medição disponível durante o último passo de simulação, enquanto a última fornece a medição para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito marcando a opção Igual ao passo de simulação localizada na pasta da aba Main do editor de cenário. Esta função requer que o número de Vehicles que cruzaram o detector seja conhecido chamando AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId.

Formato
StaticInfVeh AKIDetGetInfVehInDetectionStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVeh AKIDetGetInfVehInDetectionStaticInfVehInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detector.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVeh{
    int report;
    int idVeh;
    int type;
    double length;
    double width;
    double maxDesiredSpeed;
    double maxAcceleration;
    double normalDeceleration;
    double maxDeceleration;
    double speedAcceptance;
    double minDistanceVeh;
    double giveWayTime;
    double guidanceAcceptance;
    int enrouted;
    int equipped;
    int tracked;
    bool keepfastLane;
    double safetyMarginFactor;
    double headwayMin;
    double sensitivityFactor;
    double reactionTime;
    double reactionTimeAtStop;
    double reactionTimeAtTrafficLight;
    bool laneChangingCooperation;
    double laneChangingAggressivenessLevel;
    double distanceZoneFactor;
    int centroidOrigin;
    int centroidDest;
    int idsectionExit;
    int idLine;
    void * internalInfo;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
  • guidanceAcceptance: Nível de conformidade do veículo às indicações de orientação.
  • em rota: 0 significa que o veículo não atualizará o caminho em percurso; 1 significa que o veículo mudará o caminho em percurso dependendo da porcentagem definida de veículos que atualizam o caminho em percurso.
  • equipados: 1 significa veículo equipado.
  • rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
  • keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: headway mínimo a manter em relação ao líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação na parada do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo quando parado como o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
  • internalInfo: Somente para uso interno.

Ler as Informações Instantâneas do Veículo sobre um detector

Em C++ e Python

Explicação

Lê as informações estáticas instantâneas de veículo de todos os veículos equipados sobre o detector, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito marcando a opção Igual ao passo de simulação localizada na pasta da aba Main do editor de cenários. Esta função requer que o número de Veículos que cruzaram o detector seja conhecido chamando AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato
StaticInfVeh AKIDetGetInfVehOverStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVeh AKIDetGetInfVehInOverStaticInfVehInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detector.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída

struct StaticInfVeh{ int report; int idVeh; int type; double length; double width; double maxDesiredSpeed; double maxAcceleration; double normalDeceleration; double maxDeceleration; double speedAcceptance; double minDistanceVeh; double giveWayTime; double guidanceAcceptance; int enrouted; int equipped; int tracked; bool keepfastLane; double safetyMarginFactor; double headwayMin; double sensitivityFactor; double reactionTime; double reactionTimeAtStop; double reactionTimeAtTrafficLight; bool laneChangingCooperation; double laneChangingAggressivenessLevel; double distanceZoneFactor; int centroidOrigin; int centroidDest; int idsectionExit; int idLine; void * internalInfo; };

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
  • guidanceAcceptance*: Nível de adesão do veículo às indicações de orientação.
  • em rota: 0 significa que o veículo não atualizará o caminho em percurso; 1 significa que o veículo mudará o caminho em percurso dependendo da porcentagem definida de veículos que atualizam o caminho em percurso.
  • equipados: 1 significa veículo equipado.
  • rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
  • keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: headway mínimo a manter em relação ao líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação na parada do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo quando parado como o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
  • internalInfo: Somente para uso interno.

Ler as Informações Instantâneas do Veículo sobre um detector

Em C++ e Python

Explicação

Lê as informações estáticas instantâneas de veículo de todos os veículos equipados sobre o detector, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medida disponível durante o último passo de simulação, enquanto a última fornece a medida para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito marcando a opção Igual ao passo de simulação localizada na pasta da aba Main do editor de cenários. Esta função requer que o número de Veículos que cruzaram o detector seja conhecido chamando AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato

StaticInfVeh AKIDetGetInfVehOverStaticInfVehCyclebyId (int iddet, int elem, int vehTypePos); StaticInfVeh AKIDetGetInfVehInOverStaticInfVehInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);

Parâmetros
  • iddet: O identificador do detector.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída

struct StaticInfVeh{ int report; int idVeh; int type; double length; double width; double maxDesiredSpeed; double maxAcceleration; double normalDeceleration; double maxDeceleration; double speedAcceptance; double minDistanceVeh; double giveWayTime; double guidanceAcceptance; int enrouted; int equipped; int tracked; bool keepfastLane; double safetyMarginFactor; double headwayMin; double sensitivityFactor; double reactionTime; double reactionTimeAtStop; double reactionTimeAtTrafficLight; bool laneChangingCooperation; double laneChangingAggressivenessLevel; double distanceZoneFactor; int centroidOrigin; int centroidDest; int idsectionExit; int idLine; void * internalInfo; };

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • length: Comprimento do veículo (m ou pés, dependendo das unidades definidas na rede).
  • width: Largura do veículo (m ou pés, dependendo das unidades definidas na rede).
  • maxDesiredSpeed: Velocidade máxima desejada do veículo (km/h ou mph, dependendo das unidades definidas na rede).
  • maxAcceleration: Aceleração máxima do veículo (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • normalDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições normais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • maxDeceleration: Desaceleração máxima do veículo que pode ser aplicada em condições especiais (m/s2 ou ft/ s2, dependendo das unidades definidas na rede).
  • speedAcceptance: Grau de aceitação dos limites de velocidade.
  • minDistanceVeh: Distância que o veículo mantém entre si e o veículo precedente (metros ou pés, dependendo das unidades definidas na rede).
  • giveWayTime: Tempo após o qual o veículo se torna mais agressivo em situações de cedência de passagem (segundos).
  • guidanceAcceptance*: Nível de adesão do veículo às indicações de orientação.
  • em rota: 0 significa que o veículo não mudará de caminho enroute, 1 significa que o veículo mudará de caminho enroute dependendo da percentege de veículos enrouted definida.
  • equipados: 1 significa veículo equipado.
  • rastreados: 0 significa veículo não rastreado, 1 significa veículo rastreado.
  • keepfastLane: significa que o veículo mantém a faixa rápida durante a ultrapassagem
  • safetyMarginFactor: Fator de Margem de Segurança
  • headwayMin: headway mínimo a manter em relação ao líder
  • sensitivityFactor: Estimativa da aceleração do líder
  • reactionTime: Tempo de reação do veículo
  • reactionTimeAtStop: Tempo de reação na parada do veículo
  • reactionTimeAtTrafficLight: Tempo de reação do veículo quando parado como o primeiro da fila em um semáforo.
  • laneChangingCooperation:
  • laneChangingAggressivenessLevel:
  • distanceZoneFactor:
  • centroidOrigin: Identificador do centroide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • centroidDest: : Identificador do centroide de destino do veículo, quando as condições de tráfego são definidas por uma matriz OD.
  • idsectionExit: : Identificador da seção de saída de destino do veículo, quando o centroide de destino usa percentuais como destino (caso contrário, é –1) e as condições de tráfego são definidas por uma matriz OD.
  • idLine: Identificador da Linha de Transporte Público, quando o veículo foi gerado como veículo de transporte público.
  • internalInfo: Somente para uso interno.

Ler as informações do veículo com Adaptive Cruise Control de um detector

Em C++ e Python

Explicação

Lê os parâmetros de Adaptive Cruise Control a partir das informações estáticas de veículo de todos os veículos equipados que cruzaram o detector, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medição disponível durante o último passo de simulação, enquanto a segunda fornece a medição para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendado que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito marcando a opção Igual ao passo de simulação localizada na pasta da aba Main do editor de cenário. Esta função exige que o número de Vehicles que cruzaram o detector seja conhecido chamando AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId.

Formato
StaticInfVehACCParams AKIDetGetInfVehInDetectionStaticInfVehACCParamsCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVehACCParams AKIDetGetInfVehInDetectionStaticInfVehACCParamsInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detector.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVehACCParams {
    int report;                     
    int idVeh;
    int accType;

    double minClearanceDistance;
    double maxClearanceDistance;
    double speedGainFreeFlow;
    double distanceGain;
    double speedGainPrec;
    double desiredTimeGap;

    double connectedDistanceGain;
    double connectedSpeedGain;
    double minTimeGapThreshold;
    double maxTimeGapThreshold;
    double followerTimeGap;
    double leaderTimeGap;
};

em que:

Parâmetros comuns a todos os veículos simulados:

  • relatório: Código de erro retornado (0 significa sucesso).
  • idVeh: O ID do veículo simulado.
  • accType: O módulo ACC do veículo simulado (0: None, 1: ACC, 2: CACC).

Parâmetros do Modelo ACC:

(Todos estes parâmetros serão -1 quando o módulo estiver desativado)

  • minClearanceDistance: O limite inferior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • maxClearanceDistance: O limite superior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • speedGainFreeFlow: O ganho sobre a diferença de velocidade entre a velocidade de fluxo livre e a velocidade atual do veículo em questão (s-1).
  • distanceGain: O ganho sobre a diferença de posição entre o veículo precedente e o veículo em questão (s-2).
  • speedGainPrec: O ganho sobre a diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
  • desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).

Parâmetros do Modelo CACC:

(Todos estes parâmetros serão -1 quando o módulo estiver desativado)

  • connectedDistanceGain: O ganho sobre a diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
  • connectedSpeedGain: O ganho sobre a diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
  • minTimeGapThreshold: O limite inferior para o intervalo de tempo (s).
  • maxTimeGapThreshold: O limite superior para o intervalo de tempo (s).
  • followerTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
  • leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).

Ler as informações do veículo com Adaptive Cruise Control sobre um detector

Em C++ e Python

Explicação

Leia os parâmetros de Adaptive Cruise Control a partir das informações estáticas dos veículos de todos os veículos equipados sobre o detector, quando o detector tiver a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada. A primeira função fornece a última medição disponível durante o último passo de simulação, enquanto a segunda fornece a medição para um instante específico durante o último passo de simulação (esse tempo poderia ser obtido usando a função AKIDetGetEndTimeMeasureAvailableInstantDetection). É altamente recomendável que o ciclo de detecção seja igual ao passo de simulação. Isso pode ser feito marcando a opção Igual ao passo de simulação localizada na pasta da aba Main do editor de cenários. Esta função requer que o número de Veículos que cruzaram o detector seja conhecido chamando AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato
StaticInfVehACCParams AKIDetGetInfVehOverStaticInfVehACCParamsCyclebyId (int iddet, int elem, int vehTypePos);
StaticInfVehACCParams AKIDetGetInfVehInOverStaticInfVehACCParamsInstantDetectionbyId(int iddet, int elem, int vehTypePos, double endtime);
Parâmetros
  • iddet: O identificador do detector.
  • elem: O número do veículo. Deve estar entre 0 e o número total de identificadores de veículos - 1 retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct StaticInfVehACCParams {
    int report;                     
    int idVeh;
    int accType;

    double minClearanceDistance;
    double maxClearanceDistance;
    double speedGainFreeFlow;
    double distanceGain;
    double speedGainPrec;
    double desiredTimeGap;

    double connectedDistanceGain;
    double connectedSpeedGain;
    double minTimeGapThreshold;
    double maxTimeGapThreshold;
    double followerTimeGap;
    double leaderTimeGap;
};

em que:

Parâmetros comuns a todos os veículos simulados:

  • relatório: Código de erro retornado (0 significa sucesso).
  • idVeh: O ID do veículo simulado.
  • accType: O módulo ACC do veículo simulado (0: None, 1: ACC, 2: CACC).

Parâmetros do Modelo ACC:

(Todos estes parâmetros serão -1 quando o módulo estiver desativado)

  • minClearanceDistance: O limite inferior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • maxClearanceDistance: O limite superior para o espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do seguinte (m).
  • speedGainFreeFlow: O ganho sobre a diferença de velocidade entre a velocidade de fluxo livre e a velocidade atual do veículo em questão (s-1).
  • distanceGain: O ganho sobre a diferença de posição entre o veículo precedente e o veículo em questão (s-2).
  • speedGainPrec: O ganho sobre a diferença de velocidade entre o veículo precedente e o veículo em questão (s-1).
  • desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).

Parâmetros do Modelo CACC:

(Todos estes parâmetros serão -1 quando o módulo estiver desativado)

  • connectedDistanceGain: O ganho sobre a diferença de posição entre o veículo conectado precedente e o veículo CACC em questão (s-1).
  • connectedSpeedGain: O ganho sobre a diferença de velocidade entre o veículo conectado precedente e o veículo CACC em questão.
  • minTimeGapThreshold: O limite inferior para o intervalo de tempo (s).
  • maxTimeGapThreshold: O limite superior para o intervalo de tempo (s).
  • followerTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).
  • leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC em questão (s).

Ler as informações de um Veículo em um Detector

Em C++ e Python

Explicação

Ler as informações de determinado veículo equipado em um detector. Esta função requer que, anteriormente, obtenhamos o número de veículos equipados que cruzaram o detector chamando AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId.

Formato
InfVeh AKIDetGetInfVehInDetectionInfVehCyclebyId(int iddet, int elem, int VehTypePos)
InfVeh AKIDetGetInfVehInDetectionInfVehInstantDetectionbyId(int iddet, int elem, int VehTypePos, double endtime);
Parâmetros
  • iddet: Identificador do detector
  • elem: Índice do veículo, de 0 a (Número Total de Veículos no detector – 1), retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída
struct InfVeh{
    int report;
    int idVeh;
    int type;
    // Information in Vehicle when it is in a section
    int idSection;
    int segment;
    int numberLane;
    // Information in Vehicle when it is in a node
    int idJunction;
    int idSectionFrom;
    int idLaneFrom;
    int idSectionTo;
    int idLaneTo;

    double CurrentPos;
    double distance2End;
    double xCurrentPos, yCurrentPos, zCurrentPos;
    double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack;
    double CurrentSpeed, PreviousSpeed;
    double TotalDistance;
    double SystemGenerationT;
    double SystemEntranceT;
    double SectionEntranceT;
    double CurrentStopTime;
    bool stopped;
    uint mNbLostTurnings;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • idSection: Identificador da seção
  • segmento: Número do segmento da seção onde o veículo está localizado (de 0 a n-1)
  • numberLane: Número da faixa no segmento (a partir de 1, a faixa mais à direita, até N, a faixa mais à esquerda)
  • CurrentPos: Posição dentro da seção = distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção.
  • distance2End: Distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede)
  • xCurrentPos, yCurrentPos, zCurrentPos: Coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
  • xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: Coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
  • CurrentSpeed: Velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede
  • PreviousSpeed: a velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede.
  • TotalDistance: Distância total percorrida (m ou pés) pelo veículo.
  • SystemGenerationT: Tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
  • SystemEntranceT: Tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
  • SectionEntranceT: Tempo absoluto de entrada do veículo na seção atual.
  • CurrentStopTime: Tempo atual de parada.
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.

Os outros campos ou atributos não têm significado, portanto seu valor é –1.

Ler as informações de um Veículo sobre um Detector

Em C++ e Python

Explicação

Ler as informações de determinado veículo equipado sobre um detector. Esta função requer que, anteriormente, obtenhamos o número de veículos equipados que cruzaram o detector chamando AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato
InfVeh AKIDetGetInfVehOverInfVehCyclebyId(int iddet, int elem, int VehTypePos)
InfVeh AKIDetGetInfVehOverInfVehInstantDetectionbyId(int iddet, int elem, int VehTypePos, double endtime);
Parâmetros
  • iddet: Identificador do detector
  • elem: Índice do veículo, de 0 a (Número Total de Veículos no detector – 1), retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída

struct InfVeh{ int report; int idVeh; int type; // Information in Vehicle when it is in a section int idSection; int segment; int numberLane; // Information in Vehicle when it is in a node int idJunction; int idSectionFrom; int idLaneFrom; int idSectionTo; int idLaneTo;

double CurrentPos; double distance2End; double xCurrentPos, yCurrentPos, zCurrentPos; double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack; double CurrentSpeed, PreviousSpeed; double TotalDistance; double SystemGenerationT; double SystemEntranceT; double SectionEntranceT; double CurrentStopTime; bool stopped; uint mNbLostTurnings; };

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • idSection: Identificador da seção
  • segmento: Número do segmento da seção onde o veículo está localizado (de 0 a n-1)
  • numberLane: Número da faixa no segmento (a partir de 1, a faixa mais à direita, até N, a faixa mais à esquerda)
  • CurrentPos: Posição dentro da seção = distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção.
  • distance2End: Distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede)
  • xCurrentPos, yCurrentPos, zCurrentPos: Coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
  • xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: Coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
  • CurrentSpeed: Velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede
  • PreviousSpeed: a velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede.
  • TotalDistance: Distância total percorrida (m ou pés) pelo veículo.
  • SystemGenerationT: Tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
  • SystemEntranceT: Tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
  • SectionEntranceT: Tempo absoluto de entrada do veículo na seção atual.
  • CurrentStopTime: Tempo atual de parada.
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.

Os outros campos ou atributos não têm significado, portanto seu valor é –1.

Ler as informações de um Veículo sobre um Detector

Em C++ e Python

Explicação

Ler as informações de determinado veículo equipado sobre um detector. Esta função requer que, anteriormente, obtenhamos o número de veículos equipados que cruzaram o detector chamando AKIDetGetNbVehsEquippedOverCyclebyId ou AKIDetGetNbVehsEquippedOverInstantDetectionbyId.

Formato

InfVeh AKIDetGetInfVehOverInfVehCyclebyId(int iddet, int elem, int VehTypePos) InfVeh AKIDetGetInfVehOverInfVehInstantDetectionbyId(int iddet, int elem, int VehTypePos, double endtime);

Parâmetros
  • iddet: Identificador do detector
  • elem: Índice do veículo, de 0 a (Número Total de Veículos no detector – 1), retornado na função AKIDetGetNbVehsEquippedInDetectionCyclebyId ou AKIDetGetNbVehsEquippedInDetectionInstantDetectionbyId (que deve ser chamada primeiro).
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • endtime: O tempo que define a medida instantânea.
Saída

struct InfVeh{ int report; int idVeh; int type; // Information in Vehicle when it is in a section int idSection; int segment; int numberLane; // Information in Vehicle when it is in a node int idJunction; int idSectionFrom; int idLaneFrom; int idSectionTo; int idLaneTo;

double CurrentPos; double distance2End; double xCurrentPos, yCurrentPos, zCurrentPos; double xCurrentPosBack, yCurrentPosBack, zCurrentPosBack; double CurrentSpeed, PreviousSpeed; double TotalDistance; double SystemGenerationT; double SystemEntranceT; double SectionEntranceT; double CurrentStopTime; };

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: Tipo de veículo (carro, ônibus, caminhão etc.)
  • idSection: Identificador da seção
  • segmento: Número do segmento da seção onde o veículo está localizado (de 0 a n-1)
  • numberLane: Número da faixa no segmento (a partir de 1, a faixa mais à direita, até N, a faixa mais à esquerda)
  • CurrentPos: Posição dentro da seção = distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção.
  • distance2End: Distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede)
  • xCurrentPos, yCurrentPos, zCurrentPos: Coordenadas mundiais do ponto médio do para-choque dianteiro do veículo.
  • xCurrentPosBack, yCurrentPosBack, zCurrentPosBack: Coordenadas mundiais do ponto médio do para-choque traseiro do veículo.
  • CurrentSpeed: Velocidade atual (em km/h ou mph, dependendo das unidades definidas na rede
  • PreviousSpeed: a velocidade no passo de simulação anterior (em km/h ou mph, dependendo das unidades definidas na rede.
  • TotalDistance: Distância total percorrida (m ou pés) pelo veículo.
  • SystemGenerationT: Tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual for encontrada em sua seção de entrada, será o mesmo que SystemEntranceT.
  • SystemEntranceT: Tempo absoluto de entrada do veículo no sistema, isto é, em sua seção de entrada. Se nenhuma fila virtual for encontrada em sua seção de entrada, será igual a SystemGenerationT.
  • SectionEntranceT: Tempo absoluto de entrada do veículo na seção atual.
  • CurrentStopTime: Tempo atual de parada.

Os outros campos ou atributos não têm significado, portanto seu valor é –1.

Ler contador agregado no último intervalo de detecção

Em C++ e Python

Explicação

Ler o contador agregado durante o último intervalo de detecção. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada.

Formato
int AKIDetGetCounterAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥ 0: o valor do contador retornado
  • < 0: Erro

Ler a Velocidade Agregada no Último Intervalo de Detecção

Em C++ e Python

Explicação

Lê a velocidade agregada durante o último intervalo de detecção (km/h ou mph, dependendo das unidades definidas na rede). É possível distinguir a detecção para diferentes tipos de veículos. No caso em que o tipo de veículo é 0, a distinção por tipo de veículo não é considerada.

Formato
double AKIDetGetSpeedAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥ 0: a velocidade retornada em km/h ou mph, dependendo das unidades definidas na rede.
  • < 0: Erro

Ler ocupação agregada no último intervalo de detecção

Em C++ e Python

Explicação

Lê a porcentagem do tempo em que o detector esteve ocupado durante o último intervalo de detecção. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada.

Formato
double AKIDetGetTimeOccupedAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥ 0: a ocupação retornada
  • < 0: Erro

Ler presença agregada no último intervalo de detecção

Em C++ e Python

Explicação

Leia a presença agregada durante o último intervalo de detecção. Ela será 0 se nenhum veículo tiver passado sobre o detector e 1 caso contrário. É possível distinguir a detecção para diferentes tipos de veículos. No caso de o tipo de veículo ser 0, a distinção por tipo de veículo não é levada em conta.

Formato
int AKIDetGetPresenceAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥ 0: a presença retornada
  • < 0: Erro

Ler densidade agregada no último intervalo de detecção

Em C++ e Python

Explicação

Lê a densidade (expressa em veh/km ou veh/mi, dependendo das unidades definidas na rede) durante o último intervalo de detecção. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é levada em conta.

Formato
double AKIDetGetDensityAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥0: a densidade retornada
  • < 0: Erro

Ler headway agregado no último intervalo de detecção

Em C++ e Python

Explicação

Lê o headway médio entre veículos (tempo médio entre para-choques) que cruzaram o detector durante o último intervalo de detecção. É possível distinguir a detecção para diferentes tipos de veículos. No caso em que o tipo de veículo é 0, a distinção por tipo de veículo não é considerada.

Formato
double AKIDetGetHeadwayAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥0: o headway retornado, em segundos.
  • < 0: Erro

Ler o Número de Veículos Equipados com seu traço no Último Intervalo de Detecção

Em C++ e Python

Explicação

Ler o número de veículos equipados que cruzaram o detector durante o último intervalo de detecção, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículos. No caso em que o tipo de veículo é 0, a distinção por tipo de veículo não é levada em conta.

Formato
int AKIDetGetNbVehsInDetectionAggregatedbyId(int IdDetector, int VehTypePos)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • ≥0: o número de veículos
  • < 0: Erro

Ler o rastreamento de veículos equipados no último intervalo de detecção

Em C++ e Python

Explicação

Lê as informações dos veículos equipados que cruzaram o detector durante o último intervalo de detecção, quando o detector tem a capacidade "Equipped Vehicle" ativada. É possível distinguir a detecção para diferentes tipos de veículo. Caso o tipo de veículo seja 0, a distinção por tipo de veículo não é considerada.

Formato
EquippedInfVeh AKIDetGetInfVehInDetectionAggregatedbyId(int IdDetector, int vehTypePos, int elem)
Parâmetros
  • IdDetector: O identificador do detector.
  • vehTypePos: A posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
  • elem: O número do veículo. Ele deve estar entre 0 e o número total de identificadores de veículos -1
Saída
struct EquippedInfVeh {
    int report;
    double timedetected;
    int idVeh;
    int vehType;
    double speed;
    double headway;
    int idptline;
}

em que:

  • relatório: 0, OK, caso contrário código de erro.
  • timedetected: Instante em que o veículo equipado cruzou o detector.
  • idVeh: identificador do veículo
  • vehType: Posição do tipo de veículo na lista de tipos de veículos em uso. 0 corresponde a todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), a um tipo de veículo específico.
  • velocidade: Velocidade instantânea do veículo (km/h ou mph, dependendo das unidades definidas na rede)
  • intervalo entre veículos: Headway instantâneo do veículo (s)
  • idptline: Identificador da linha de transporte público (-1 quando o veículo equipado não pertence a nenhuma linha de transporte público)

Funções relativas a dados estatísticos de detectores

A estrutura retornada por este conjunto de funções é a seguinte:

struct StructAkiEstadDetector{
    int report;
    int Id;
    int Flow;   /* Flow */
    double Sa;      /* Speed: Average */
    double Density; /* Density */
    double Occupancy; /* Occupancy */
    double Headway; /* Headway */
}

Ler dados de estatísticas globais de um Detector

Em C++ e Python

Explicação

Leia os dados estatísticos do detector coletados durante todo o período de simulação.

Formato
StructAkiEstadDetector AKIEstGetGlobalStatisticsDetector( int detectorId, int vehTypePos )
Parâmetros
  • detectorId é o identificador do detector.
  • vehTypePos é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • StructAkiEstadDetector: estrutura com informações estatísticas. Um relatório de 0 significa OK; caso contrário, contém o código de erro.

Ler dados estatísticos periódicos de um Detector

C++ e Python

Explicação

Lê os dados estatísticos do detector coletados durante o último intervalo estatístico de detecção.

Formato
StructAkiEstadDetector AKIEstGetParcialStatisticsDetector( int detectorId, double timeSta, int vehType )
Parâmetros
  • detectorId é o identificador do detector.
  • timeSta é o tempo atual de simulação em segundos a partir da meia-noite.
  • vehTypePos é a posição do tipo de veículo na lista de tipos de veículos em uso. 0 deve ser usado para todos os tipos de veículos e um valor de 1 a AKIVehGetNbVehTypes (), para um tipo de veículo específico.
Saída
  • StructAkiEstadDetector: estrutura com informações estatísticas. Um relatório de 0 significa OK; caso contrário, contém o código de erro.