Aimsun Next API Rastreio de Veículos¶
Funções relacionadas ao Rastreio de Veículos¶
Modificar a Velocidade de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modifique a velocidade de um veículo rastreado para o próximo passo de simulação, se for menor do que a velocidade calculada usando o modelo de seguimento de veículos.
Formato¶
int AKIVehTrackedModifySpeed (int aidVeh, double newSpeed);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - newSpeed: Nova velocidade (Km/h ou Mph dependendo das unidades definidas na rede).
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Forçar a Velocidade de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Force a velocidade de um veículo rastreado para o próximo passo de simulação sem considerar as restrições do modelo de seguimento de veículos.
Formato¶
int AKIVehTrackedForceSpeed (int aidVeh, double newSpeed);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - newSpeed: Nova velocidade (Km/h ou Mph dependendo das unidades definidas na rede).
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Modificar a Faixa de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modifique a faixa alvo de um veículo rastreado até que ele tenha realizado a troca de faixa.
Existem condições que devem ser atendidas ao usar faixas laterais para entrar em uma seção. Se o veículo rastreado estiver em uma faixa lateral, e a nova faixa alvo for a faixa adjacente da seção da via, então a instrução da função AKIVehTrackedModifyLane está sujeita à presença de uma faixa virtual faixa contínua definida pela distância de junção e pela opção FIFO para a junção em rampa. Veja a seção sobre Junções em Rampa para mais detalhes.
Observe que no caso em que a instrução da função API é anulada pelos parâmetros de junção, a função API teria retornado 0 (Sem erro), pois teria definido a faixa alvo com sucesso, antes da aplicação das regras de junção.
O modelador pode garantir que a chamada da API nunca seja substituída definindo a distância da junção como sendo igual ao comprimento da faixa de junção e desmarcando a opção FIFO. Isso, no entanto, modificará o comportamento de todos os veículos na simulação e, portanto, deve ser usado com cuidado.
Formato¶
int AKIVehTrackedModifyLane (int aidVeh, int nextLane);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - newLane: -1 próxima faixa à direita ou 1 próxima faixa à esquerda. 0 não mudar de faixa. -2 reiniciar, devolve o controle da faixa alvo ao modelo de simulação padrão.
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Modificar a Próxima Seção de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modifique a próxima seção de um veículo rastreado a fim de forçar uma curva, para o próximo passo de simulação.
Formato¶
int AKIVehTrackedModifyNextSection (int aidVeh, int nextSection);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - nextSection: Próxima seção.
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Modificar as Próximas Seções de um Veículo Rastreado¶
Em C++ apenas¶
Explicação¶
Modifique as próximas seções de um veículo rastreado a fim de forçar um subcaminho, para o próximo passo de simulação. A primeira seção dada deve ser uma seção imediatamente a jusante da seção atual do veículo. A lista de seções não atinge o centróide de destino do veículo. Uma vez que ele saia da última seção do subcaminho dado, o veículo calculará uma rota de sua localização até seu destino.
Formato¶
int AKIVehTrackedModifyNextSections (int aidVeh, int sizeNextSections, const int *nextSections);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - sizeNextSections: Número de seções no subcaminho
 - nextSections: Array com os IDs das próximas seções. O número de seções deve ser igual a sizeNextSections
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Exemplo de uso em C:
int * pathArray = (int *) calloc( pathSize, sizeof(int) );
for( int i = 0; i < pathSize; i++ ){
    pathArray[i] = sectionID[i];
}
int err = AKIVehTrackedModifyNextSections( vehId, pathSize, pathArray );
free( pathArray );
Modificar a Faixa de Entrada na Próxima Seção de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Define a faixa desejada que o veículo rastreado deve escolher ao entrar na próxima seção. A faixa desejada deve estar conectada à faixa atual. Caso contrário, o veículo não considerará a faixa desejada como sua faixa alvo.
Formato¶
int AKIVehTrackedModifyNextTargetLaneInNextSection(int aidVeh, int nextSection, int nextlane);
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - nextSection: Identificador da próxima seção.
 - nextlane: Posição da faixa desejada onde 1 é a faixa mais à direita e N a faixa mais à esquerda, onde N é o número de faixas na próxima seção.
 
Saída¶
- = 0: Sem erro
 
Remover um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Remova um veículo rastreado.
Formato¶
int AKIVehTrackedRemove (int aidVeh);
int AKIVehTrackedDelete (int aidVeh);  //Função antiga, mantida para compatibilidade
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Definir um Veículo como Rastreado / Não Rastreado¶
Em C++ e Python¶
Explicação¶
Defina um veículo como rastreado/ Defina um veículo como não rastreado
Formato¶
int AKIVehSetAsTracked (int aidVeh);
int AKIVehSetAsNoTracked (int aidVeh);
Parâmetros¶
- aidVeh: Identificador do veículo.
 
Saída¶
- = 0: Sem erro
 - < 0: Erro
 
Ler as informações de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Ler as informações de um veículo rastreado
Formato¶
InfVeh AKIVehTrackedGetInf(int aidVeh)
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
Saída¶
struct InfVeh{
    int report;
    int idVeh;
    int type;
    // Informações no Veículo quando está em uma seção
    int idSection;
    int segment;
    int numberLane;
    // Informações no Veículo quando está em um nó
    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;
};
onde:
- report: 0, OK, caso contrário é um código de erro
 - idVeh: O identificador do veículo
 - type: O tipo de veículo (carro, ônibus, caminhão, etc.).
 - idSection: O identificador da seção.
 - segment: 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 (de 1, a faixa mais à direita, a N, a faixa mais à esquerda).
 - idSectionFrom: Identificador da seção de origem.
 - idLaneFrom: Faixa da seção de origem pela qual o veículo entra no nó. 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 para a qual o veículo sai do nó. 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: Posição dentro da seção. A distância (metros ou pés, dependendo das unidades definidas na rede) desde o início da seção ou posição dentro do nó dada como a distância da entrada até o nó.
 - distance2End: Distância até o final da seção (metros 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 final da curva quando o veículo está em um nó.
 - xCurrentPos, yCurrentPos, zCurrentPos: Coordenadas mundiais do ponto médio do para-choque frontal 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 (metros ou pés).
 - SystemGenerationT: O tempo absoluto de geração do veículo no sistema. Se nenhuma fila virtual encontrada em sua seção de entrada, será o mesmo que o SystemEntranceT.
 - SystemEntranceT: O tempo absoluto de entrada do veículo no sistema, ou seja, em sua seção de entrada. Se nenhuma fila virtual encontrada em sua seção de entrada, será o mesmo que o SystemGenerationT.
 - SectionEntranceT: O tempo absoluto de entrada do veículo na seção atual.
 - CurrentStopTime: O tempo atual de parada.
 - stopped: Verdadeiro se o veículo permanecer parado.
 - mNbLostTurnings: O número de curvas perdidas.
 - energyState: Nível atual do tanque de combustível em veículos de combustão (l) ou estado 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 Rastreado¶
Em C++ e Python¶
Explicação¶
Ler as informações estáticas do veículo rastreado. As informações estáticas são as características do veículo que foram definidas quando o veículo entrou no sistema.
Formato¶
StaticInfVeh AKIVehTrackedGetStaticInf (int aidVeh)
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
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 vehicleSegmentId;
    int EUEmissionId;
    double energyCapacity;
};
onde:
- report: 0, OK, senão 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: Aceleração máxima que o veículo pode aplicar em condições normais (m/s2 ou ft/s2, dependendo das unidades definidas na rede).
 - maxDeceleration: Aceleração máxima do veículo que pode ser aplicada sob 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 dê preferência (segundos).
 - guidanceAcceptance: Nível de conformidade do veículo com as indicações de orientação.
 - enrouted: 0 significa que o veículo não atualizará o caminho em rota, 1 significa que o veículo mudará o caminho em rota dependendo da porcentagem definida de veículos que atualizam o caminho em rota.
 - equipped: 0 significa que o veículo não está equipado, 1 significa que o veículo está equipado.
 - tracked: 0 significa que o veículo não está rastreado, 1 significa que o veículo está rastreado.
 - keepfastLane: Verdadeiro significa que o veículo mantém a faixa rápida durante a ultrapassagem
 - safetyMarginFactor: Fator de margem de segurança
 - headwayMin: Intervalo mínimo até o líder
 - sensitivityFactor: Estimativa da aceleração do líder
 - reactionTime: Tempo de reação do veículo
 - reactionTimeAtStop: Tempo de reação ao parar do veículo
 - reactionTimeAtTrafficLight: Tempo de reação do veículo quando parado o primeiro da fila em um semáforo.
 - laneChangingCooperation:
 - laneChangingAggressivenessLevel:
 - distanceZoneFactor:
 - centroidOrigin: Identificador do centróide de origem do veículo, quando as condições de tráfego são definidas por uma matriz OD.
 - centroidDest: : Identificador do centróide 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 do destino do veículo, quando o centróide de destino usa porcentagens 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 um veículo de transporte público.
 - internalInfo: Para uso interno
 - engineTypeId: Identificador do tipo de motor do veículo (emissões, consumo, modelos de aceleração MFC), onde: Nenhum = 0, Gasolina = 1, Diesel = 2, Elétrico = 3, Gás = 4.
 - vehicleSegmentId: Identificador do Segmento de Carro da Euro do veículo para o modelo de aceleração MFC / modelo de Consumo de Bateria: Nenhum = 0, A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, J = 7, NM = 8.
 - EUEmissionId: Identificador de Emissão Padrão para LEM. Nulo = 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 (Veículos Leves (carro, táxi, 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 (Veículos Pesados (LGV, HGV, Ônibus, Microônibus)).
 - energyCapacity: Capacidade total do tanque (l) ou bateria (kW)
 
Modificar as Informações Estáticas de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modificar alguns dos parâmetros estáticos de um veículo rastreado. 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: tipo, comprimento, largura, 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 faz sentido quando o centróide de destino usa porcentagens como destino; se o identificador da seção for inválido ou –1, então Aimsun Next determinará a seção de saída de acordo com os critérios definidos no centróide). Aimsun Next não armazena os valores anteriores, portanto, não pode recuperá-los.
Formato¶
int AKIVehTrackedSetStaticInf (int aidVeh, StaticInfVeh staticinfVeh)
Parâmetros¶
- aidVeh: O identificador do veículo rastreado.
 - staticinfVeh: Os novos parâmetros estáticos a serem atribuídos.
 
Saída:¶
- = 0: Sem erro
 - < 0: Erro
 
Ler as Informações de Controle de Cruzeiro Adaptativo de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Ler as informações de Controle de Cruzeiro Adaptativo do veículo rastreado. Os parâmetros ACC estabelecem as capacidades e influenciam o comportamento do Controle de Cruzeiro Adaptativo do veículo. Esses parâmetros foram definidos quando o veículo entrou no sistema.
Formato¶
StaticInfVehACCParams AKIVehTrackedGetStaticInfACCParams( int aidVeh )
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
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;
};
onde:
Parâmetros comuns a todos os veículos simulados:
- report: 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: Nenhum, 1: ACC, 2: CACC).
 
Parâmetros do Modelo ACC:
(Todos esses 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 na diferença de velocidade entre a velocidade de fluxo livre e a velocidade atual do veículo sujeito (s-1).
 - distanceGain: O ganho na diferença de posição entre o veículo precedente e o veículo sujeito (s-2).
 - speedGainPrec: O ganho na diferença de velocidade entre o veículo precedente e o veículo sujeito (s-1).
 - desiredTimeGap: O intervalo de tempo desejado do controlador ACC (s).
 
Parâmetros do Modelo CACC:
(Todos esses parâmetros serão -1 quando o módulo estiver desativado)
- connectedDistanceGain: O ganho na diferença de posição entre o veículo conectado precedente e o veículo CACC sujeito (s-1).
 - connectedSpeedGain: O ganho na diferença de velocidade entre o veículo conectado precedente e o veículo CACC sujeito.
 - 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 sujeito (s).
 - leaderTimeGap: O intervalo de tempo constante entre o último veículo da sequência conectada precedente e o veículo CACC sujeito (s).
 
Modificar as Informações de Controle de Cruzeiro Adaptativo de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modificar os parâmetros ACC de um veículo rastreado. Os parâmetros ACC estabelecem as capacidades e influenciam o comportamento do Controle de Cruzeiro Adaptativo 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 report. Aimsun Next não armazena os valores anteriores, portanto, não pode recuperá-los.
Formato¶
int AKIVehTrackedSetStaticInfACCParams( int aidVeh, StaticInfVehACCParams staticinfVehACC )
Parâmetros¶
- aidVeh: O identificador do veículo rastreado.
 - staticinfVehACC: Os novos parâmetros ACC a serem atribuídos.
 
Saída:¶
- = 0: Sem erro
 - < 0: Erro
 
Ler a(s) posição(ões) de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Ler as coordenadas do veículo rastreado durante o último passo de simulação.
Formato¶
InfVehPos AKIVehTrackedGetPos( int anIdVeh, int nbPos )
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - nbPos: Número de posições do veículo rastreado. Se este parâmetro for maior que 1, a função fornece as posições "entre o passo de simulação" para este veículo. A última posição sempre corresponde à posição no final do passo de simulação.
 
Saída:¶
struct InfVehPos{
    int report;
    int idVeh;
    int Npos;
    VehPos *vehiclePos;
};
struct VehPos{
    double xPos, yPos, zPos;
    double xPosBack, yPosBack, zPosBack;
};
onde:
- report: 0, OK, caso contrário um código de erro.
 - idVeh: O identificador do veículo.
 - Npos: Número de posições durante o último passo de simulação (parâmetro de entrada).
 - vehiclePos: Array com as posições durante o último passo de simulação. Após usar esta função, este array deve ser desalocado usando a função "free".
 - xPos, yPos, zPos: Coordenadas mundiais do ponto médio do para-choque frontal do veículo para a posição atual.
 - xPosBack, yPosBack, zPosBack: Coordenadas mundiais do ponto médio do para-choque traseiro do veículo para a posição atual.
 
Uso em Python¶
A estrutura VehPos * é mapeada como um VehPosArray. Para acessá-la corretamente, o VehPosArray precisa ser construído a partir da estrutura vehiclePos. Veja o código a seguir como um exemplo:
currentState = AKIVehTrackedGetPos(1, 4)
if currentState.report == 0:
    vehiclePos = VehPosArray.frompointer(currentState.vehiclePos)
    for i in range(currentState.Npos):
        print (time,vehiclePos[i].xPos, vehiclePos[i].yPos, vehiclePos[i].zPos)
Modificar a posição de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Modificar a posição do veículo rastreado durante o último passo de simulação, considerando as coordenadas mundiais no ponto médio dos para-choques frontal e traseiro do veículo.
Formato¶
int AKIVehSetVehicleTrackedDynInf( int anIdVeh, DynInfVeh dynInfVeh)
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 - 
dynInfVeh: As informações dinâmicas durante o último passo de simulação onde:
struct dynInfVeh{ double xCurrentPos, yCurrentPos; double xCurrentPosBack, yCurrentPosBack; double currentSpeed; int turning; }; - xCurrentPos, yCurrentPos: Coordenadas mundiais do ponto médio do para-choque frontal do veículo para a posição atual - xCurrentPosBack, yCurrentPosBack: Coordenadas mundiais do ponto médio do para-choque traseiro do veículo para a posição atual - currentSpeed: Velocidade atual (km/h ou mph, dependendo das unidades definidas na rede). - turning: Próxima curva selecionada pelo veículo (-1 curva à direita, 1 curva à esquerda, 0 outros casos)
 
Saída:¶
- = 0: Sem erro
 - < 0: Erro
 
Ler a posição relativa ao líder de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Ler a posição relativa ao líder
Formato¶
LeaderInfVeh AKIVehTrackedGetLeaderVehInf(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;
};
onde:
- report: 0, OK, senão código de erro
 - idVeh: identificador do veículo
 - idLeaderVeh: identificador do veículo líder, 0 se não houver líder.
 - headway: tempo entre o para-choque frontal de um veículo e o para-choque frontal do próximo veículo (s).
 - gap: tempo entre o para-choque traseiro de um veículo e o para-choque frontal do próximo veículo (s).
 - spacing: espaço entre o para-choque frontal de um veículo e o para-choque frontal do próximo veículo (m).
 - clearance: espaço entre o para-choque traseiro de um veículo e o para-choque frontal do próximo (m).
 
Ler as Informações Gráficas de um Veículo Rastreado¶
Em C++ e Python¶
Explicação¶
Ler as informações gráficas do veículo rastreado durante o último passo de simulação.
Formato¶
GraphicInfVeh AKIVehTrackedGetGraphicInf ( int anIdVeh)
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
Saída:¶
struct GraphicInfVeh{
    int report;
    int idVeh;
    bool leftTurnSignal;
    bool rightTurnSignal;
    bool brakeLight;
}
Ler o identificador da categoria do veículo¶
Em C++ e Python¶
Explicação¶
Ler o identificador da categoria estática do veículo: Usado para classificar a categoria do veículo.
Formato¶
int AKIVehTrackedGetVehicleCategoryId ( int anIdVeh )
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
Saída:¶
int vehicleCategory{ 0 = Carro 1 = Veículo Comercial 2 = Ônibus 3 = Motocicleta 4 = Não Motorizado };
Ler o identificador do tipo de emissão do veículo para o Modelo de Emissão de Londres (LEM).¶
Em C++ e Python¶
Explicação¶
Ler o identificador de emissão estática do veículo: Usado para classificar o tipo de emissão do veículo (subtipo da categoria do veículo).
Formato¶
int AKIVehTrackedGetLEMEmissionVehicleTypeId ( int anIdVeh )
Parâmetros¶
- aidVeh: Identificador do veículo rastreado.
 
Saída:¶
int SSLEMVehicleTypeID{ 0 = Carro 1 = Táxi 2 = eLGV 3 = eHGV 4 = eÔnibus de andar simples 5 = eÔnibus de andar duplo 6 = eMicro-ônibus };
Ler o número de seções para alcançar o 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 rastreado. Válido para veículos OD e de Transporte Público, caso contrário retorna 0.
Formato¶
int AKIVehTrackedGetNbSectionsVehiclePath( int idveh )
Parâmetros¶
- idveh: O identificador do veículo rastreado.
 
Saída:¶
- ≥ 0: Número de seções para alcançar o destino.
 - AKIVehNotTracked: Erro
 
Ler os Identificadores das Seções usadas para alcançar o Destino¶
Em C++ e Python¶
Explicação¶
Ler o identificador da seção elem-th do caminho do veículo rastreado para alcançar o destino. Válido para veículos OD e de Transporte Público, caso contrário retorna 0. AKIVehTrackedGetNbSectionsVehiclePath deve ser chamado antes de chamar esta função.
Formato¶
int AKIVehTrackedGetIdSectionVehiclePath( int idveh, int indexsection )
Parâmetros¶
- idveh: O identificador do veículo rastreado.
 - indexsection: Índice da seção ( 0 ≤ indexsection < Número de seções )
 
Saída:¶
- > 0: Identificador da Seção.
 - AKIVehNotTracked: Erro
 
Definir a trajetória do veículo com base nas faixas¶
Em C++ e Python¶
Explicação¶
Função para atribuir uma trajetória com base em faixas específicas nas seções.
Formato¶
int AKIVehTrackedSetLanesTrajectory(int idVehicle, int nbSegmentsInTrajectory, int * sectIds, int * lanes, int idLastSection)
Parâmetros¶
- idVehicle: Identificador do veículo.
 - nbSegmentsInTrajectory: Número de pares diferentes de id de seção + id de faixa que farão parte da trajetória com base nas faixas.
 - sectIds: vetor de nbSegmentsInTrajectory de identificadores de seção.
 - lanes: vetor de nbSegmentsInTrajectory de identificadores de faixa na mesma posição que a seção que referenciam. Os ids de faixa vão de 1...N, sendo 1 a faixa mais à direita e N a faixa mais à esquerda.
 - idLastSection: id do identificador da última seção na trajetória.
 
Saída¶
- 0: Sem erro
 
Código de exemplo em Python¶
sectIds = intArray( 3 )
sectIds[0] = 182
sectIds[1] = 183
sectIds[2] = 184
laneIds = intArray( 3 )
laneIds[0] = 1
laneIds[1] = 2
laneIds[2] = 1
AKIVehTrackedSetLanesTrajectory(idVehicle, 3, sectIds, laneIds, 184)