Pular para o conteúdo

Informações de veículos da API do Aimsun Next

Ler o Número de Veículos em uma Seção

Em C++ e Python

Explicação

Ler o número total de veículos em uma seção.

Formato
int AKIVehStateGetNbVehiclesSection(int aidSec, bool considerAllSegments)
Parâmetros
  • aidSec: Identificador da Seção
  • considerAllSegments: este parâmetro deve sempre ser definido como true.
Saída
  • ≥ 0: Número total de veículos.
  • < 0: Error.

Ler o Número de Veículos em uma Junção

Em C++ e Python

Explicação

Ler o número total de veículos em um cruzamento.

Formato
int AKIVehStateGetNbVehiclesJunction(int aidJunction)
Parâmetros
  • aidJunction: Identificador da Interseção
Saída
  • ≥ 0: Número total de veículos
  • < 0: Erro

Ler as Informações de um Veículo em uma Seção

Em C++ e Python

Explicação

Ler as informações de um veículo em uma seção. Esta função exige que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesSection para a mesma seção, sem chamadas adicionais a AKIVehStateGetNbVehiclesSection para outras seções.

Formato
InfVeh AKIVehStateGetVehicleInfSection(int aidSec, int indexveh)
Parâmetros
  • aidSec: Identificador da Seção
  • indexveh: Índice do veículo, de 0 a (Número Total de Veículos na Seção – 1)
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;
    double energyState;
    bool isLost;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: o identificador do veículo
  • type: é 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.
  • idSection: o identificador da seção
  • segmento: o número do segmento da seção em que o veículo está localizado (de 0 a n-1)
  • numberLane: o número da faixa no segmento (de 1, a faixa mais à direita, até N, a faixa mais à esquerda)
  • CurrentPos: a 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: a 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: a 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: a distância total percorrida (m ou pés) pelo veículo.
  • SystemGenerationT: o 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: o 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: o tempo absoluto de entrada do veículo na seção atual.
  • CurrentStopTime: o tempo de parada atual.
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.
  • energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
  • isLost Verdadeiro se o veículo estiver perdido e não puder alcançar seu destino.

Os outros campos ou atributos não têm significado; seu valor é definido como –1.

Ler as informações de um Veículo em uma Interseção

Em C++ e Python

Explicação

Lê as informações de um veículo em uma interseção. Esta função requer que o número de veículos na interseção seja obtido chamando a função AKIVehStateGetNbVehiclesJunction para a mesma interseção, sem nenhuma chamada adicional à AKIVehStateGetNbVehiclesJunction para outras interseções.

Formato

InfVeh AKIVehStateGetVehicleInfJunction(int aidJunction, int indexveh)

Parâmetros
  • aidJunction: o identificador do nó
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
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 on 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;
    double energyState;
    bool isLost;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: o identificador do veículo
  • type: é 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.
  • idSectionFrom: o identificador da seção de origem
  • idLaneFrom: faixa da seção de origem pela qual o veículo entra na interseção. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de origem.
  • idSectionTo: identificador da seção de destino
  • idLaneTo: faixa da seção de destino pela qual o veículo sai da junção. 1 sendo a faixa mais à direita e N a faixa mais à esquerda, sendo N o número de faixas na seção de destino.
  • CurrentPos: a posição dentro da interseção = distância (m ou pés, dependendo das unidades definidas na rede) desde a entrada da interseção.
  • distance2End: a distância até o fim da conversã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: 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)
  • SystemGenerationT: o 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: o 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.
  • CurrentStopTime: o tempo de parada atual
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.
  • energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
  • isLost True se o veículo estiver perdido e não puder alcançar seu destino. Outros campos ou atributos não têm significado; seu valor é definido como -1

Ler as Informações Estáticas de um Veículo em uma Seção

Em C++ e Python

Explicação

Lê as informações estáticas de um veículo em uma seção. Informações estáticas significam as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja encontrado chamando AKIVehStateGetNbVehiclesSection.

Formato
StaticInfVeh AKIVehGetVehicleStaticInfSection(int aidSec, int indexveh)
Parâmetros
  • aidSec: Identificador da seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
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;

    int engineTypeId;
    int chassisId;
    int EUEmissionId;
    double energyCapacity;
};

where:
  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: é 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.
  • 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 com as 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: 0 significa veículo não equipado, 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 está parado como o primeiro da fila em um semáforo.
  • laneChangingCooperation: o veículo está atualmente cooperando em outra manobra de mudança de faixa de outro veículo.
  • laneChangingAggressivenessLevel: o fator de agressividade deste veículo na mudança de faixa, em que 0% significa que a brecha de segurança completa é necessária para a mudança de faixa e 100% significa que a brecha mínima é aceita na mudança de faixa.
  • distanceZoneFactor: o multiplicador que este veículo aplica às distâncias das zonas 1,2,3 que controlam quando ele começa a considerar uma próxima mudança de faixa. Um valor > 1 implica que ele tenta entrar na faixa mais cedo que o normal, e um valor < 1 implica que ele tenta entrar na faixa mais tarde que o normal.
  • 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
  • engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
  • chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
  • EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
  • energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)

Ler as informações estáticas de um veículo em uma interseção

Em C++ e Python

Explicação

Lê as informações estáticas de um veículo em um cruzamento. Informações estáticas significam as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função requer ter obtido previamente o número de Vehicles no cruzamento chamando a função AKIVehStateGetNbVehiclesJunction.

Formato

StaticInfVeh AKIVehGetVehicleStaticInfJunction(int aidJunction, int indexveh)

Parâmetros
  • aidJunction: o identificador do nó
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
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;

    int engineTypeId;
    int chassisId;
    int EUEmissionId;
    double energyCapacity;
};

where:
  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • type: é 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.
  • 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 com as 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: 0 significa veículo não equipado, 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 está 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
  • engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
  • chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
  • EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
  • energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)

Modificar as informações estáticas de um veículo em uma seção

Em C++ e Python

Explicação

Modifica alguns dos parâmetros estáticos de um veículo em uma seção. Parâmetros estáticos são as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que podem ser alterados são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que o número de Vehicles na seção tenha sido previamente obtido chamando AKIVehStateGetNbVehiclesSection.

Formato
int AKIVehSetVehicleStaticInfSection(int aidSec, int indexveh, StaticInfVeh staticinfVeh)
Parâmetros
  • aidSec: o identificador da seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
  • staticinfVeh: novos parâmetros estáticos a serem atribuídos
Saída
  • = 0: Sem Erro
  • < 0: Erro

Modificar as informações estáticas de um veículo em uma interseção

Em C++ e Python

Explicação

Modifica alguns dos parâmetros estáticos de um veículo em uma interseção. Parâmetros estáticos significam as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que podem ser alterados são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que o número de Vehicles na interseção tenha sido previamente obtido chamando AKIVehStateGetNbVehiclesJunction.

Formato

int AKIVehSetVehicleStaticInfJunction(int aidJunct,int indexveh, StaticInfVeh staticinfVeh)

Parâmetros
  • aidJunct: Identificador do nó
  • indexveh: o índice do veículo, de 0 a (Número Total de Veículos na interseção – 1)
  • staticinfVeh: novos parâmetros estáticos a serem atribuídos.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Ler as informações de Adaptive Cruise Control de um veículo em uma seção

Em C++ e Python

Explicação

Lê os parâmetros de Adaptive Cruise Control de um veículo em uma seção. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesSection.

Formato
StaticInfVehACCParams AKIVehGetVehicleStaticInfACCParamsSection( int aidSec, int indexveh )
Parâmetros
  • aidSec: Identificador da seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
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 Adaptive Cruise Control de um veículo em uma interseção

Em C++ e Python

Explicação

Lê os parâmetros de Adaptive Cruise Control de um veículo em um cruzamento. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função requer que o número de veículos na seção seja obtido chamando AKIVehStateGetNbVehiclesJunction.

Formato
StaticInfVehACCParams AKIVehGetVehicleStaticInfACCParamsJunction( int aidJunction, int indexveh )
Parâmetros
  • aidJunction: o identificador do nó
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
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).

Modificar as informações de Adaptive Cruise Control de um veículo em uma seção

Em C++ e Python

Explicação

Modificar os parâmetros ACC de um veículo em uma seção. Os ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer ter obtido previamente o número de Vehicles na seção chamando AKIVehStateGetNbVehiclesSection.

Formato
int AKIVehSetVehicleStaticInfACCParamsSection( int aidSec, int indexveh, StaticInfVehACCParams staticinfVehACC )
Parâmetros
  • aidSec: o identificador da seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
  • staticinfVehACC: novos parâmetros ACC a serem atribuídos
Saída
  • = 0: Sem Erro
  • < 0: Erro

Modificar as informações de Adaptive Cruise Control de um veículo em uma interseção

Em C++ e Python

Explicação

Modificar os parâmetros ACC de um veículo em uma junção. Os ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função requer que tenha sido obtido previamente o número de veículos na junção chamando AKIVehStateGetNbVehiclesJunction.

Formato
int AKIVehSetVehicleStaticInfACCParamsJunction( int aidJunct,int indexveh, StaticInfVehACCParams staticinfVehACC )
Parâmetros
  • aidJunct: Identificador do nó
  • indexveh: o índice do veículo, de 0 a (Número Total de Veículos na interseção – 1)
  • staticinfVehACC: novos parâmetros ACC a serem atribuídos.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Remover um Veículo de uma Seção

Em C++ e Python

Explicação

Remove um veículo de uma seção. Esta função requer que o número de veículos na seção tenha sido obtido chamando a função AKIVehStateGetNbVehiclesSection.

Formato
int AKIRemoveVehicle(int aidSec, int indexveh )
Parâmetros
  • aidSec: Identificador da seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
Saída
  • = 0: Sem Erro
  • < 0: Erro

Remover um Veículo de uma Interseção

Em C++ e Python

Explicação

Remove um veículo de uma interseção. Esta função exige que o número de veículos na seção tenha sido obtido chamando a função AKIVehStateGetNbVehiclesJunction.

Formato
int AKIRemoveVehicleJunction( int idJunction, int indexveh )
Parâmetros
  • idJunction: Identificador do nó
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos no cruzamento – 1)
Saída
  • = 0: Sem Erro
  • < 0: Erro

Ler as informações de um Veículo

Em C++ e Python

Explicação

Lê as informações de um veículo. Esta função pode tornar a simulação mais lenta, pois cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.

Formato
InfVeh AKIVehGetInf(int aidVeh)
Parâmetros
  • aidVeh: Identificador do Veículo
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;
    double energyState;
    bool isLost;
};

em que:

  • relatório: 0, OK, caso contrário o valor representa um código de erro
  • idVeh: o identificador do veículo.
  • type: o tipo de veículo (car, bus, truck, etc.) de 1 a AKIVehGetNbVehTypes ()
  • idSection: o identificador da seção.
  • segmento: o número do segmento da seção onde o veículo está localizado (de 0 a n-1).
  • numberLane: o número da faixa no segmento (de 1, a faixa mais à direita, até N, a faixa mais à esquerda).
  • idSectionFrom: o identificador da seção de origem.
  • idLaneFrom: o número da faixa da seção de origem pela qual o veículo entrou na junção.
  • idSectionTo: o identificador da seção de destino.
  • idLaneTo: o número da faixa da seção de destino onde o veículo sai da interseção.
  • seção dada por sua distância (m ou pés, dependendo das unidades definidas na rede) a partir do início da seção ou pela posição do veículo dentro da junção dada por sua distância a partir da entrada da junção.
  • distance2End: distância até o fim da seção (m ou pés, dependendo das unidades definidas na rede) quando o veículo está localizado em uma seção, ou a distância até o fim da conversão quando o veículo está em uma junção.
  • 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: 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)
  • SystemGenerationT: o 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: o 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: o tempo absoluto de entrada do veículo na seção atual
  • CurrentStopTime: o tempo de parada atual
  • parado: True se o veículo permanecer parado.
  • mNbLostTurnings O número de movimentos de conversão perdidos.
  • energyState Nível atual do tanque de combustível em veículos a combustão (l) ou Estado de Carga atual da bateria em veículos elétricos (kW)
  • isLost Verdadeiro se o veículo estiver perdido e não puder alcançar seu destino.

Ler as informações estáticas de um Veículo

Em C++ e Python

Explicação

Lê as informações estáticas de um veículo. As informações estáticas são as características do veículo que foram definidas quando o veículo entrou no sistema. Esta função pode tornar a simulação mais lenta porque cada chamada desta função implica encontrar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.

Formato
StaticInfVeh AKIVehGetStaticInf (int aidVeh)
Parâmetros
  • aidVeh: Identificador do Veículo
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;

    int engineTypeId;
    int chassisId;
    int EUEmissionId;
    double energyCapacity;
};

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 com as 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: 0 significa veículo não equipado, 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 está 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
  • engineTypeId: Identificador do tipo de motor do veículo (modelos de emissão, consumo e aceleração MFC), em que: None = 0, Petrol = 1, Diesel = 2, Electric = 3, LPG = 4.
  • chassisId: Identificador do segmento Euro Car do veículo para o modelo de aceleração MFC/modelo de consumo de bateria: None = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
  • EUEmissionId: Identificador Standard Emission para LEM. Null= 0, Zero = 1, Euro 0 = 2, Euro 1 = 3, Euro 2 = 4, Euro 3= 5, Euro 4 = 6, Euro 5 = 7, Euro 6 = 8, Euro 6c = 9 (Light Duty vehicles (car, taxi, van) ), Euro I = 10, Euro II = 11, Euro III = 12, Euro IV = 13, Euro IV EGR = 14, Euro V = 15, Euro V EGR = 16, Euro V SCR = 17, Euro VI = 18 (Heavy Duty vehicles (LGV, HGV, Bus, Coach) ).
  • energyCapacity: Capacidade Total do tanque (l) ou da bateria (kW)

Modificar as Informações Estáticas de um Veículo

Em C++ e Python

Explicação

Modifica alguns dos parâmetros estáticos de um veículo. Parâmetros estáticos são as características do veículo que foram definidas quando o veículo entrou no sistema. Os parâmetros estáticos que é possível alterar são: type, length width, maxDesiredSpeed, maxAcceleration, normalDeceleration, maxDeceleration, speedAcceptance, minDistanceVeh, giveWayTime, guidanceAcceptance, enrouted, equipped, tracked, keepfastLane, safetyMarginFactor, headwayMin, sensitivityFactor, reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, equipped, tracked, centroidOrigin, centroidDest e idsectionExit (a seção de saída tem significado quando o centroide de destino usa porcentagens de destino; se o identificador da seção for inválido ou –1, então o Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centroide). O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função pode tornar a simulação mais lenta porque cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, defina o veículo como Tracked e então leia suas informações.

Formato
int AKIVehSetStaticInf (int aidVeh, StaticInfVeh staticinfVeh)
Parâmetros
  • aidVeh: Identificador do Veículo
  • staticinfVeh: novos parâmetros estáticos a serem atribuídos.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Ler posição relativa em relação ao líder

Em C++ e Python

Explicação

Ler a posição relativa em relação ao líder

Formato
LeaderInfVeh AKIVehGetLeaderInfVeh( int aidVeh )
Parâmetros
  • aidVeh: Identificador do Veículo
Saída
struct LeaderInfVeh{
    int report;
    int idVeh;
    int idLeaderVeh; 
    double headway;
    double gap;
    double spacing;
    double clearance;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • idLeaderVeh: identificador do veículo líder, 0 se não houver líder.
  • intervalo entre veículos: tempo entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (s).
  • gap: tempo entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (s).
  • espaçamento: espaço entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
  • liberação: espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (m).

Ler as informações de controle de cruzeiro adaptativo de um veículo

Em C++ e Python

Explicação

Leia os parâmetros de Adaptive Cruise Control de um veículo. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Esta função pode tornar a simulação mais lenta porque cada chamada desta função implica encontrar o veículo dentro da rede. Para evitar essa busca, recomenda-se que o veículo seja definido como Tracked para tornar suas informações mais acessíveis.

Formato
StaticInfVehACCParams AKIVehGetStaticInfACCParams( int aidVeh )
Parâmetros
  • aidVeh: Identificador do Veículo
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).

Modificar as informações de Adaptive Cruise Control de um veículo

Em C++ e Python

Explicação

Modificar os parâmetros ACC de um veículo. ACC Parameters estabelecem as capacidades e influenciam o comportamento do Adaptive Cruise Control do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema. Todos os parâmetros podem ser alterados, exceto idVeh e relatório. O Aimsun Next não armazena os valores anteriores, portanto não pode recuperá-los. Esta função pode tornar a simulação mais lenta porque cada chamada a esta função implica localizar o veículo dentro da rede. Para evitar essa busca, defina o veículo como Tracked e então leia suas informações.

Formato
int AKIVehSetStaticInfACCParams( int aidVeh, StaticInfVehACCParams staticinfVehACC )
Parâmetros
  • aidVeh: Identificador do Veículo
  • staticinfVehACC: novos parâmetros ACC a serem atribuídos.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Ler a posição de um Veículo em uma Seção

Em C++ e Python

Explicação

Ler a posição de um veículo em uma seção

Formato
InfVehPos AKIVehGetVehicleGetPosSection( int asect, int indexveh, int nbPos );
Parâmetros
  • asect: Identificador da Seção
  • indexVeh: o índice do veículo na seção
  • nbPos: número de posições a ler
Saída
  • report= 0: Sem Erro
  • report < 0: Erro

Ler a posição de um veículo em uma seção reutilizando a struct InfVehPos

Em C++ e Python

Explicação

Lê a posição de um veículo em uma seção. É mais rápida que a função AKIVehGetVehicleGetPosSection

Formato
int AKIVehGetVehicleGetPosSectionWithStruct( int asect, int indexveh, int nbPos, InfVehPos *pinfVehPos );
Parâmetros
  • asect: Identificador da Seção
  • indexVeh: o índice do veículo na seção
  • nbPos: número de posições a ler
  • pinfVehPos: o ponteiro para a struct.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Ler a posição de um Veículo em uma Interseção

Em C++ e Python

Explicação
Formato
InfVehPos AKIVehGetVehicleGetPosJunction( int ajunction, int indexveh, int nbPos );
Parâmetros
  • ajunction: Identificador da Interseção
  • indexVeh: o índice do veículo na seção
  • nbPos: número de posições a ler
Saída
  • report = 0: Sem Erro
  • report < 0: Erro

Ler a posição de um veículo em uma interseção reutilizando a struct InfVehPos

Em C++ e Python

Explicação

Lê a posição de um veículo em um cruzamento. É mais rápida que a função AKIVehGetVehicleGetPosJunction anterior.

Formato
int AKIVehGetVehicleGetPosJunctionWithStruct( int ajunction, int indexveh, int nbPos, InfVehPos *pinfVehPos );
Parâmetros
  • ajunction: Identificador da Interseção
  • indexVeh: o índice do veículo na seção
  • nbPos: número de posições a ler
  • pinfVehPos: o ponteiro para a struct.
Saída
  • = 0: Sem Erro
  • < 0: Erro

Habilitar as Informações Gráficas de um Veículo

Em C++ e Python

Explicação

Habilita as Informações Gráficas de um Veículo. Em execuções por linha de comando (aconsole.exe) e simulações em lote, é necessário chamar esta função para ler as Informações Gráficas dos veículos.

Formato
int AKIVehEnableGraphicalInf()
Saída
  • = 0: Sem Erro

Desativar as Informações Gráficas de um Veículo

Em C++ e Python

Explicação

Desativa a Informação Gráfica de um Veículo

Formato
int AKIVehDisableGraphicalInf()
Saída
  • = 0: Sem Erro

Ler as informações gráficas de um veículo a partir de uma seção

Em C++ e Python

Explicação

Lê as Informações Gráficas de um Veículo a partir de uma seção

Formato
GraphicInfVeh AKIVehGetVehicleGraphicInfSection(int asect, int indexveh);

struct GraphicInfVeh{
    int report;
    int idVeh;
    bool leftTurnSignal;
    bool rightTurnSignal;
    bool brakeLight;
}
Parâmetros
  • asect: Identificador da Seção
  • indexveh: Índice do veículo na seção
Saída
  • report = 0: Sem Erro
  • report < 0: Erro

Ler as informações gráficas de um veículo a partir de uma junção

Em C++ e Python

Explicação

Lê as Informações Gráficas de um Veículo a partir de uma interseção

Formato
GraphicInfVeh AKIVehGetVehicleGraphicInfJunction(int ajunction, int indexveh);
Parâmetros
  • ajunction: Identificador da Interseção
  • indexveh: Índice do veículo na interseção
Saída
  • report = 0: Sem Erro
  • report &lt 0: Erro

Modificar um Veículo para trafegar de ré ou normalmente

Em C++ e Python

Explicação

Modifica o modo de desenho de um veículo. Se o parâmetro value for true, o veículo será desenhado como trafegando para trás

Formato
int AKIVehSetDrivingBackwards(int aidSec, int indexveh, bool value);
Parâmetros
  • aidSec Identificador da Seção
  • indexveh: Índice do veículo na seção
  • valor: Modo de desenho
Saída
  • report = 0: Sem Erro
  • report < 0: Erro

Ler o número de seções para chegar ao destino

Em C++ e Python

Explicação

Ler o número de seções para alcançar o destino de um caminho de veículo. O veículo pode estar em uma seção ou em uma interseção. Válido para veículos OD e de transporte público; caso contrário, retorna 0. AKIVehStateGetNbVehiclesSection ou AKIVehStateGetNbVehiclesJunction deve ser chamado antes de chamar esta função. Se o parâmetro idsection estiver definido como -1, será retornado o número de seções desde o início até o destino; caso contrário, o número de seções a partir da seção com idsection Identificador até o destino é retornado.

Formato
int AKIVehStateGetNbSectionsVehiclePathSection( int aidSection, int indexveh, int idsection )

int AKIVehStateGetNbSectionsVehiclePathJunction( int aidJunction, int indexveh, int idsection )
Parâmetros
  • aidSection: Identificador da seção.
  • aidJunction: Identificador da Interseção.
  • indexveh: Índice do veículo na seção ou no nó ( 0 ≤ indexveh < Número de veículos na seção ou no nó )
  • idsection: As seções são contadas a partir de idsection. Se idsection for definido como -1, as seções são contadas desde o início.
Saída
  • ≥ 0: Número de seções para chegar ao destino.
  • AKIInfNotReady: Erro

Ler os Identificadores das seções para alcançar o destino

Em C++ e Python

Explicação

Ler o identificador da seção elem-th do caminho do veículo para chegar ao destino. O veículo pode estar em uma seção ou em uma interseção. Válido para veículos OD e de transporte coletivo; caso contrário, retorna 0. AKIVehStateGetNbSectionsVehiclePathSection ou AKIVehStateGetNbSectionsVehiclePathJunction deve ser chamada antes de chamar estas funções. Se o parâmetro idsection for definido como -1, os identificadores das seções desde o início até o destino são retornados; caso contrário, os identificadores das seções a partir da seção com identificador idsection até o destino são retornados.

Formato
int AKIVehStateGetIdSectionVehiclePathSection( int aidSection, int indexveh, int idsection, int indexsection)

int AKIVehStateGetIdSectionVehiclePathJunction( int aidJunction, int indexveh, int idsection, int indexsection)
Parâmetros
  • aidSection: Identificador da seção.
  • aidJunction: Identificador da Interseção.
  • indexveh: Índice do veículo na seção ou no nó ( 0 ≤ indexveh ≤ Número de veículos na seção ou no nó )
  • idsection: As seções são contadas a partir de idsection. Se idsection for definido como -1, as seções são contadas desde o início.
  • indexsection: índice da seção ( 0 ≤ indexsection < Number of sections )
Saída
  • > 0: Identificador da Seção.
  • AKIInfNotReady: Erro

Ler o ID do veículo líder

Em C++ e Python

Explicação

Lê o identificador do líder do veículo

Formato
int AKIVehGetLeaderId( int idVehicle )
Parâmetros
  • idVehicle: Identificador do veículo.
Saída
  • > 0: Identificador do veículo líder.
  • AKIInfVehNotFound: Erro

Ler o ID do Seguidor de Veículo

Em C++ e Python

Explicação

Lê o Identificador do Seguidor do Veículo

Formato
int AKIVehGetFollowerId( int idVehicle )
Parâmetros
  • idVehicle: Identificador do veículo.
Saída
  • > 0: Identificador do veículo seguidor.
  • AKIInfVehNotFound: Erro

Ler a posição relativa ao líder na seção e na junção

Em C++ e Python

Explicação

Ler posição relativa em relação ao líder

Formato
LeaderInfVeh AKIVehGetLeaderVehInfSection( int aidSec, int indexveh );

LeaderInfVeh AKIVehGetLeaderVehInfJunction(int ajunction, int indexveh);
Parâmetros
  • aidVeh: Identificador do Veículo
  • aidSec: Identificador da Seção
  • ajunction: Identificador da Interseção
Saída
struct LeaderInfVeh{
    int report;
    int idVeh;
    int idLeaderVeh; 
    double headway;
    double gap;
    double spacing;
    double clearance;
};

em que:

  • relatório: 0, OK, caso contrário código de erro
  • idVeh: identificador do veículo
  • idLeaderVeh: identificador do veículo líder, 0 se não houver líder.
  • intervalo entre veículos: tempo entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (s).
  • gap: tempo entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (s).
  • espaçamento: espaço entre o para-choque dianteiro de um veículo e o para-choque dianteiro do veículo seguinte (m).
  • liberação: espaço entre o para-choque traseiro de um veículo e o para-choque dianteiro do veículo seguinte (m).

Ler o Atraso Acumulado do Veículo

Em C++ e Python

Explicação

Lê o atraso acumulado do veículo

Formato
double AKIVehGetAccumulatedDelay( int idVehicle )
Parâmetros
  • idVehicle: Identificador do veículo.
Saída
  • > 0: Atraso Acumulado do Veículo.
  • AKIInfVehNotFound: Erro